{
  "openapi": "3.1.1",
  "info": {
    "title": "Happytails.ai Agent API",
    "version": "1.0.0",
    "description": "Callable tools. Local preview binds only to loopback. API inputs are processed on the server; browser-page inputs keep their existing processing behavior."
  },
  "servers": [
    {
      "url": "https://happytails.ai",
      "description": "Website origin; public server API hosting is not connected yet."
    }
  ],
  "paths": {
    "/api/v1/tools": {
      "get": {
        "operationId": "list_tools",
        "summary": "Discover callable tools and schemas",
        "responses": {
          "200": {
            "description": "Tool catalog"
          }
        }
      }
    },
    "/api/v1/tools/{tool}": {
      "get": {
        "operationId": "get_tool",
        "summary": "Get one callable tool and input schema",
        "parameters": [
          {
            "name": "tool",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tool metadata"
          },
          "404": {
            "description": "Tool unavailable"
          }
        }
      }
    },
    "/api/v1/tools/heic-to-jpg/run": {
      "post": {
        "operationId": "heic_to_jpg",
        "summary": "HEIC to JPG",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Converts the primary HEIC image with orientation applied. Multi-image sequences and HDR preservation are not supported.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality (%)",
                        "default": 85.0,
                        "minimum": 1,
                        "maximum": 100,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/merge-pdf/run": {
      "post": {
        "operationId": "merge_pdf",
        "summary": "Merge PDF",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/split-pdf/run": {
      "post": {
        "operationId": "split_pdf",
        "summary": "Split PDF",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-pages/run": {
      "post": {
        "operationId": "extract_pages",
        "summary": "Extract pages",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/rotate-pdf/run": {
      "post": {
        "operationId": "rotate_pdf",
        "summary": "Rotate PDF",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      },
                      "angle": {
                        "type": "string",
                        "description": "Rotation",
                        "default": "90",
                        "enum": [
                          "90",
                          "180",
                          "270"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/reorder-pages/run": {
      "post": {
        "operationId": "reorder_pages",
        "summary": "Reorder pages",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-json/run": {
      "post": {
        "operationId": "csv_to_json",
        "summary": "CSV to JSON",
        "description": "Convert CSV to JSON.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-csv/run": {
      "post": {
        "operationId": "json_to_csv",
        "summary": "JSON to CSV",
        "description": "Convert JSON to CSV.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "safe": {
                        "type": "boolean",
                        "description": "Protect spreadsheet formulas",
                        "default": true
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/excel-to-csv/run": {
      "post": {
        "operationId": "excel_to_csv",
        "summary": "Excel to CSV",
        "description": "Uses stored cell values; formulas are not recalculated. Check dates, identifiers and cached formula results. CSV/JSON export reads one worksheet.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sheet": {
                        "type": "string",
                        "description": "Worksheet name (blank = first)",
                        "default": ""
                      },
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-excel/run": {
      "post": {
        "operationId": "csv_to_excel",
        "summary": "CSV to excel",
        "description": "CSV cells are stored as text to preserve leading zeros and prevent formula execution. Nested JSON values become JSON strings.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sheet": {
                        "type": "string",
                        "description": "Worksheet name (blank = first)",
                        "default": ""
                      },
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/tsv-to-csv/run": {
      "post": {
        "operationId": "tsv_to_csv",
        "summary": "TSV to CSV",
        "description": "Convert TSV to CSV.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-viewer/run": {
      "post": {
        "operationId": "csv_viewer",
        "summary": "CSV viewer",
        "description": "Preview CSV rows and columns in a readable table.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-duplicate-lines/run": {
      "post": {
        "operationId": "remove_duplicate_lines",
        "summary": "Remove duplicate lines",
        "description": "Remove repeated lines while keeping their first occurrence.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-extra-spaces/run": {
      "post": {
        "operationId": "remove_extra_spaces",
        "summary": "Remove extra spaces",
        "description": "Tidy repeated spaces without losing line breaks.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sort-lines/run": {
      "post": {
        "operationId": "sort_lines",
        "summary": "Sort lines",
        "description": "Sort lines alphabetically or in natural number order.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "order": {
                        "type": "string",
                        "description": "Sort",
                        "default": "Alphabetical",
                        "enum": [
                          "Alphabetical",
                          "Numeric"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/compare-text/run": {
      "post": {
        "operationId": "compare_text",
        "summary": "Compare text",
        "description": "Line-based comparison: + added, − removed.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "other": {
                        "type": "string",
                        "description": "Compare with",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/word-counter/run": {
      "post": {
        "operationId": "word_counter",
        "summary": "Word counter",
        "description": "Count words, characters and lines as you type.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/case-converter/run": {
      "post": {
        "operationId": "case_converter",
        "summary": "Case converter",
        "description": "Switch your text between six capitalization styles.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "type": "string",
                        "description": "Case",
                        "default": "upper",
                        "enum": [
                          "upper",
                          "lower",
                          "camel",
                          "pascal",
                          "snake",
                          "kebab"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/heic-to-png/run": {
      "post": {
        "operationId": "heic_to_png",
        "summary": "HEIC to PNG",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Converts the primary HEIC image with orientation applied. Multi-image sequences and HDR preservation are not supported.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality (%)",
                        "default": 85.0,
                        "minimum": 1,
                        "maximum": 100,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/image-to-base64/run": {
      "post": {
        "operationId": "image_to_base64",
        "summary": "Image to base64",
        "description": "Encodes PNG, JPEG, WebP, GIF, or AVIF bytes as an image data URL. The image format is detected from its contents.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/base64-to-image/run": {
      "post": {
        "operationId": "base64_to_image",
        "summary": "Base64 to image",
        "description": "Validate data URI and actual image signature.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/compress-pdf/run": {
      "post": {
        "operationId": "compress_pdf",
        "summary": "Compress PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Lossless structural optimisation and supported structural recovery. No image downsampling or guarantee of smaller output.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/add-page-numbers/run": {
      "post": {
        "operationId": "add_page_numbers",
        "summary": "Add page numbers",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/delete-pages/run": {
      "post": {
        "operationId": "delete_pages",
        "summary": "Delete pages",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-yaml/run": {
      "post": {
        "operationId": "json_to_yaml",
        "summary": "JSON to YAML",
        "description": "Convert JSON to YAML.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/yaml-to-json/run": {
      "post": {
        "operationId": "yaml_to_json",
        "summary": "YAML to JSON",
        "description": "Convert YAML to JSON.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/xml-to-json/run": {
      "post": {
        "operationId": "xml_to_json",
        "summary": "XML to JSON",
        "description": "Convert XML to JSON.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-markdown/run": {
      "post": {
        "operationId": "csv_to_markdown",
        "summary": "CSV to markdown",
        "description": "Convert CSV to Markdown.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-remove-duplicates/run": {
      "post": {
        "operationId": "csv_remove_duplicates",
        "summary": "CSV remove duplicates",
        "description": "Remove duplicate CSV rows while keeping the first occurrence.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-column-selector/run": {
      "post": {
        "operationId": "csv_column_selector",
        "summary": "CSV column selector",
        "description": "Keep selected CSV columns in the order you choose.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "columns": {
                        "type": "string",
                        "description": "Columns to keep (comma separated)",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/markdown-to-html/run": {
      "post": {
        "operationId": "markdown_to_html",
        "summary": "Markdown to HTML",
        "description": "Convert Markdown into HTML source.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/html-to-markdown/run": {
      "post": {
        "operationId": "html_to_markdown",
        "summary": "HTML to markdown",
        "description": "Convert HTML markup into Markdown.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/find-and-replace/run": {
      "post": {
        "operationId": "find_and_replace",
        "summary": "Find and replace",
        "description": "Literal, case-sensitive replacement. For regular expressions use Regex tester.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "find": {
                        "type": "string",
                        "description": "Find",
                        "default": ""
                      },
                      "replace": {
                        "type": "string",
                        "description": "Replace with",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/slug-generator/run": {
      "post": {
        "operationId": "slug_generator",
        "summary": "Slug generator",
        "description": "Create a lowercase, hyphen-separated slug.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-urls/run": {
      "post": {
        "operationId": "extract_urls",
        "summary": "Extract urls",
        "description": "Find unique HTTP and HTTPS links in pasted text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-formatter/run": {
      "post": {
        "operationId": "json_formatter",
        "summary": "JSON formatter",
        "description": "Indent/minify with syntax errors.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "indent": {
                        "type": "number",
                        "description": "Indent spaces",
                        "default": 2.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-validator/run": {
      "post": {
        "operationId": "json_validator",
        "summary": "JSON validator",
        "description": "Line/column errors and clear syntax-versus-schema validation scope.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "indent": {
                        "type": "number",
                        "description": "Indent spaces",
                        "default": 2.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/base64-encoder-decoder/run": {
      "post": {
        "operationId": "base64_encoder_decoder",
        "summary": "Base64 encoder decoder",
        "description": "Encode/decode tabs.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "direction": {
                        "type": "string",
                        "description": "Direction",
                        "default": "Encode",
                        "enum": [
                          "Encode",
                          "Decode"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/url-encoder-decoder/run": {
      "post": {
        "operationId": "url_encoder_decoder",
        "summary": "URL encoder decoder",
        "description": "Encode or decode a URL component.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "direction": {
                        "type": "string",
                        "description": "Direction",
                        "default": "Encode",
                        "enum": [
                          "Encode",
                          "Decode"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/uuid-generator/run": {
      "post": {
        "operationId": "uuid_generator",
        "summary": "UUID generator",
        "description": "Cryptographically random version 4 UUIDs.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "UUIDs",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/unix-timestamp-converter/run": {
      "post": {
        "operationId": "unix_timestamp_converter",
        "summary": "Unix timestamp converter",
        "description": "Seconds versus milliseconds, UTC/local zones and explicit out-of-range handling.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "direction": {
                        "type": "string",
                        "description": "Direction",
                        "default": "Timestamp to date",
                        "enum": [
                          "Timestamp to date",
                          "Date to timestamp"
                        ]
                      },
                      "unit": {
                        "type": "string",
                        "description": "Timestamp unit",
                        "default": "Seconds",
                        "enum": [
                          "Seconds",
                          "Milliseconds"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/jwt-decoder/run": {
      "post": {
        "operationId": "jwt_decoder",
        "summary": "JWT decoder",
        "description": "Decoding does not verify the signature or establish trust. Tokens remain local.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/file-hash/run": {
      "post": {
        "operationId": "file_hash",
        "summary": "File hash",
        "description": "SHA-256 digest and compare expected value.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "algorithm": {
                        "type": "string",
                        "description": "Hash",
                        "default": "SHA-256",
                        "enum": [
                          "SHA-256",
                          "SHA-384",
                          "SHA-512",
                          "SHA-1"
                        ]
                      },
                      "expected": {
                        "type": "string",
                        "description": "Expected hash (optional)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/color-picker/run": {
      "post": {
        "operationId": "color_picker",
        "summary": "Color picker",
        "description": "Image upload sampling plus manual color entry.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "color": {
                        "type": "string",
                        "description": "Color",
                        "default": "#3366cc"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/contrast-checker/run": {
      "post": {
        "operationId": "contrast_checker",
        "summary": "Contrast checker",
        "description": "Compute stated WCAG ratio for foreground/background.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "foreground": {
                        "type": "string",
                        "description": "Text",
                        "default": "#222222"
                      },
                      "background": {
                        "type": "string",
                        "description": "Background",
                        "default": "#ffffff"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/hex-to-rgb/run": {
      "post": {
        "operationId": "hex_to_rgb",
        "summary": "Hex to RGB",
        "description": "3/6/8-digit HEX support and explicit alpha interpretation.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "color": {
                        "type": "string",
                        "description": "Color",
                        "default": "#3366cc"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/rgb-to-hex/run": {
      "post": {
        "operationId": "rgb_to_hex",
        "summary": "RGB to hex",
        "description": "Validate channel ranges and alpha.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "color": {
                        "type": "string",
                        "description": "Color",
                        "default": "#3366cc"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/palette-generator/run": {
      "post": {
        "operationId": "palette_generator",
        "summary": "Palette generator",
        "description": "Generate from image or seed.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "color": {
                        "type": "string",
                        "description": "Base color",
                        "default": "#3366cc"
                      },
                      "n": {
                        "type": "number",
                        "description": "Shades",
                        "default": 9.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/aspect-ratio-calculator/run": {
      "post": {
        "operationId": "aspect_ratio_calculator",
        "summary": "Aspect ratio calculator",
        "description": "Find the simplest aspect ratio from a width and height.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "w": {
                        "type": "number",
                        "description": "Width",
                        "default": 1920.0
                      },
                      "h": {
                        "type": "number",
                        "description": "Height",
                        "default": 1080.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/utm-builder/run": {
      "post": {
        "operationId": "utm_builder",
        "summary": "Utm builder",
        "description": "Validate destination, encode parameters and expose duplicates.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "source": {
                        "type": "string",
                        "description": "UTM source",
                        "default": ""
                      },
                      "medium": {
                        "type": "string",
                        "description": "UTM medium",
                        "default": ""
                      },
                      "campaign": {
                        "type": "string",
                        "description": "UTM campaign",
                        "default": ""
                      },
                      "term": {
                        "type": "string",
                        "description": "UTM term",
                        "default": ""
                      },
                      "content": {
                        "type": "string",
                        "description": "UTM content",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/qr-code-generator/run": {
      "post": {
        "operationId": "qr_code_generator",
        "summary": "QR code generator",
        "description": "Download an SVG QR code. Anyone who scans it can read its contents; the code does not encrypt your data.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "correction": {
                        "type": "string",
                        "description": "Error correction",
                        "default": "M",
                        "enum": [
                          "M",
                          "L",
                          "Q",
                          "H"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/wifi-qr-code/run": {
      "post": {
        "operationId": "wifi_qr_code",
        "summary": "Wifi QR code",
        "description": "Download an SVG QR code. Anyone who scans it can read its contents; the code does not encrypt your data.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "correction": {
                        "type": "string",
                        "description": "Error correction",
                        "default": "M",
                        "enum": [
                          "M",
                          "L",
                          "Q",
                          "H"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Network name (SSID)",
                        "default": ""
                      },
                      "password": {
                        "type": "string",
                        "description": "Wi-Fi password",
                        "default": ""
                      },
                      "security": {
                        "type": "string",
                        "description": "Wi-Fi security",
                        "default": "WPA",
                        "enum": [
                          "WPA",
                          "WEP",
                          "nopass"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/vcard-qr-code/run": {
      "post": {
        "operationId": "vcard_qr_code",
        "summary": "Vcard QR code",
        "description": "Download an SVG QR code. Anyone who scans it can read its contents; the code does not encrypt your data.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "correction": {
                        "type": "string",
                        "description": "Error correction",
                        "default": "M",
                        "enum": [
                          "M",
                          "L",
                          "Q",
                          "H"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Full name",
                        "default": ""
                      },
                      "phone": {
                        "type": "string",
                        "description": "Phone including country code",
                        "default": ""
                      },
                      "email": {
                        "type": "string",
                        "description": "Email",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/serp-preview/run": {
      "post": {
        "operationId": "serp_preview",
        "summary": "Serp preview",
        "description": "Title/description editing with device previews.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "Title",
                        "default": ""
                      },
                      "description": {
                        "type": "string",
                        "description": "Description",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/date-difference/run": {
      "post": {
        "operationId": "date_difference",
        "summary": "Date difference",
        "description": "Inclusive/exclusive counting, leap years, calendar dates versus elapsed time.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "string",
                        "description": "Start date",
                        "default": "2026-01-01"
                      },
                      "end": {
                        "type": "string",
                        "description": "End date",
                        "default": "2026-12-31"
                      },
                      "holidays": {
                        "type": "string",
                        "description": "Holidays to exclude (YYYY-MM-DD, comma separated)",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/add-days/run": {
      "post": {
        "operationId": "add_days",
        "summary": "Add days",
        "description": "Add/subtract calendar days and expose timezone/calendar assumptions.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "date": {
                        "type": "string",
                        "description": "Date",
                        "default": "2026-01-01"
                      },
                      "days": {
                        "type": "number",
                        "description": "Days to add (negative subtracts)",
                        "default": 30.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/business-days/run": {
      "post": {
        "operationId": "business_days",
        "summary": "Business days",
        "description": "Custom weekends first.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "string",
                        "description": "Start date",
                        "default": "2026-01-01"
                      },
                      "end": {
                        "type": "string",
                        "description": "End date",
                        "default": "2026-12-31"
                      },
                      "holidays": {
                        "type": "string",
                        "description": "Holidays to exclude (YYYY-MM-DD, comma separated)",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/time-zone-converter/run": {
      "post": {
        "operationId": "time_zone_converter",
        "summary": "Time zone converter",
        "description": "Use an explicit source offset to avoid ambiguous daylight-saving times.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "zone": {
                        "type": "string",
                        "description": "Destination IANA timezone",
                        "default": "America/New_York"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/time-duration/run": {
      "post": {
        "operationId": "time_duration",
        "summary": "Time duration",
        "description": "Start/end times, crossing midnight, breaks, decimal hours and explicit timezone handling.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "string",
                        "description": "Start time",
                        "default": "09:00"
                      },
                      "end": {
                        "type": "string",
                        "description": "End time",
                        "default": "17:00"
                      },
                      "break": {
                        "type": "number",
                        "description": "Unpaid break (minutes)",
                        "default": 30.0
                      },
                      "overnight": {
                        "type": "boolean",
                        "description": "Ends next day",
                        "default": false
                      },
                      "rate": {
                        "type": "number",
                        "description": "Hourly rate",
                        "default": 20.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/percentage/run": {
      "post": {
        "operationId": "percentage",
        "summary": "Percentage",
        "description": "Find a percentage of a number.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "p": {
                        "type": "number",
                        "description": "Percentage",
                        "default": 10.0
                      },
                      "v": {
                        "type": "number",
                        "description": "Of value",
                        "default": 200.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/percentage-change/run": {
      "post": {
        "operationId": "percentage_change",
        "summary": "Percentage change",
        "description": "Result is percentage change; an original value of zero is undefined.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "a": {
                        "type": "number",
                        "description": "Original",
                        "default": 100.0
                      },
                      "b": {
                        "type": "number",
                        "description": "New",
                        "default": 120.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/discount/run": {
      "post": {
        "operationId": "discount",
        "summary": "Discount",
        "description": "Calculate the saving and final price after a discount.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "p": {
                        "type": "number",
                        "description": "Price",
                        "default": 100.0
                      },
                      "d": {
                        "type": "number",
                        "description": "Discount (%)",
                        "default": 20.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/margin/run": {
      "post": {
        "operationId": "margin",
        "summary": "Margin",
        "description": "Calculate profit and profit margin from cost and selling price.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "cost": {
                        "type": "number",
                        "description": "Cost",
                        "default": 60.0
                      },
                      "price": {
                        "type": "number",
                        "description": "Selling price",
                        "default": 100.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/markup/run": {
      "post": {
        "operationId": "markup",
        "summary": "Markup",
        "description": "Calculate profit and markup from cost and selling price.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "cost": {
                        "type": "number",
                        "description": "Cost",
                        "default": 60.0
                      },
                      "price": {
                        "type": "number",
                        "description": "Selling price",
                        "default": 100.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/break-even/run": {
      "post": {
        "operationId": "break_even",
        "summary": "Break even",
        "description": "Find how many units cover your fixed and variable costs.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "fixed": {
                        "type": "number",
                        "description": "Fixed costs",
                        "default": 1000.0
                      },
                      "price": {
                        "type": "number",
                        "description": "Price per unit",
                        "default": 25.0
                      },
                      "cost": {
                        "type": "number",
                        "description": "Variable cost per unit",
                        "default": 10.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ratio/run": {
      "post": {
        "operationId": "ratio",
        "summary": "Ratio",
        "description": "Simplify a ratio of two whole numbers.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "a": {
                        "type": "number",
                        "description": "First amount",
                        "default": 12.0
                      },
                      "b": {
                        "type": "number",
                        "description": "Second amount",
                        "default": 18.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/length/run": {
      "post": {
        "operationId": "length",
        "summary": "Length",
        "description": "Convert between meters, feet, inches, and other length units.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "m",
                        "enum": [
                          "m",
                          "km",
                          "cm",
                          "mm",
                          "in",
                          "ft",
                          "yd",
                          "mi"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "km",
                        "enum": [
                          "m",
                          "km",
                          "cm",
                          "mm",
                          "in",
                          "ft",
                          "yd",
                          "mi"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/weight/run": {
      "post": {
        "operationId": "weight",
        "summary": "Weight",
        "description": "Convert between kilograms, pounds, ounces, and other mass units.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "kg",
                        "enum": [
                          "kg",
                          "g",
                          "mg",
                          "lb",
                          "oz",
                          "tonne"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "g",
                        "enum": [
                          "kg",
                          "g",
                          "mg",
                          "lb",
                          "oz",
                          "tonne"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/temperature/run": {
      "post": {
        "operationId": "temperature",
        "summary": "Temperature",
        "description": "Convert between Celsius, Fahrenheit, and Kelvin.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Temperature",
                        "default": 20.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "Celsius",
                        "enum": [
                          "Celsius",
                          "Fahrenheit",
                          "Kelvin"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "Fahrenheit",
                        "enum": [
                          "Celsius",
                          "Fahrenheit",
                          "Kelvin"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/data-storage/run": {
      "post": {
        "operationId": "data_storage",
        "summary": "Data storage",
        "description": "Convert between bits, bytes, decimal storage units, and binary storage units.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "byte",
                        "enum": [
                          "byte",
                          "bit",
                          "kB",
                          "MB",
                          "GB",
                          "TB",
                          "KiB",
                          "MiB",
                          "GiB",
                          "TiB"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "bit",
                        "enum": [
                          "byte",
                          "bit",
                          "kB",
                          "MB",
                          "GB",
                          "TB",
                          "KiB",
                          "MiB",
                          "GiB",
                          "TiB"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/speed/run": {
      "post": {
        "operationId": "speed",
        "summary": "Speed",
        "description": "Convert between meters per second, kilometers per hour, miles per hour, and knots.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "m/s",
                        "enum": [
                          "m/s",
                          "km/h",
                          "mph",
                          "knot"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "km/h",
                        "enum": [
                          "m/s",
                          "km/h",
                          "mph",
                          "knot"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/area/run": {
      "post": {
        "operationId": "area",
        "summary": "Area",
        "description": "Convert between square meters, square feet, acres, and other area units.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "m²",
                        "enum": [
                          "m²",
                          "km²",
                          "cm²",
                          "ft²",
                          "in²",
                          "acre",
                          "hectare"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "km²",
                        "enum": [
                          "m²",
                          "km²",
                          "cm²",
                          "ft²",
                          "in²",
                          "acre",
                          "hectare"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/volume/run": {
      "post": {
        "operationId": "volume",
        "summary": "Volume",
        "description": "Convert between liters, milliliters, and US or Imperial volume units.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "L",
                        "enum": [
                          "L",
                          "mL",
                          "m³",
                          "US gallon",
                          "Imperial gallon",
                          "US fl oz"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "mL",
                        "enum": [
                          "L",
                          "mL",
                          "m³",
                          "US gallon",
                          "Imperial gallon",
                          "US fl oz"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/kg-to-lb/run": {
      "post": {
        "operationId": "kg_to_lb",
        "summary": "Kg to lb",
        "description": "Preset kg/lb direction, reciprocal input and precision.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "kg",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/cm-to-inches/run": {
      "post": {
        "operationId": "cm_to_inches",
        "summary": "Cm to inches",
        "description": "Preset cm/inches with decimal/fraction choices.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "cm",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/srt-to-vtt/run": {
      "post": {
        "operationId": "srt_to_vtt",
        "summary": "SRT to VTT",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/vtt-to-srt/run": {
      "post": {
        "operationId": "vtt_to_srt",
        "summary": "VTT to SRT",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/shift-subtitles/run": {
      "post": {
        "operationId": "shift_subtitles",
        "summary": "Shift subtitles",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "seconds": {
                        "type": "number",
                        "description": "Shift seconds (negative = earlier)",
                        "default": 0.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/subtitles-to-text/run": {
      "post": {
        "operationId": "subtitles_to_text",
        "summary": "Subtitles to text",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mp4-to-mp3/run": {
      "post": {
        "operationId": "mp4_to_mp3",
        "summary": "MP4 to MP3",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Audio is processed locally with FFmpeg. Lossy conversion does not recover lost detail.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "bitrate": {
                        "type": "string",
                        "description": "MP3 bitrate (kbps)",
                        "default": "128",
                        "enum": [
                          "64",
                          "96",
                          "128",
                          "192",
                          "256",
                          "320"
                        ]
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/wav-to-mp3/run": {
      "post": {
        "operationId": "wav_to_mp3",
        "summary": "WAV to MP3",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Audio is processed locally with FFmpeg. Lossy conversion does not recover lost detail.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "bitrate": {
                        "type": "string",
                        "description": "MP3 bitrate (kbps)",
                        "default": "128",
                        "enum": [
                          "64",
                          "96",
                          "128",
                          "192",
                          "256",
                          "320"
                        ]
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/m4a-to-mp3/run": {
      "post": {
        "operationId": "m4a_to_mp3",
        "summary": "M4a to MP3",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Audio is processed locally with FFmpeg. Lossy conversion does not recover lost detail.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "bitrate": {
                        "type": "string",
                        "description": "MP3 bitrate (kbps)",
                        "default": "128",
                        "enum": [
                          "64",
                          "96",
                          "128",
                          "192",
                          "256",
                          "320"
                        ]
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/trim-audio/run": {
      "post": {
        "operationId": "trim_audio",
        "summary": "Trim audio",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. ",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "number",
                        "description": "Start (seconds)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 1800
                      },
                      "end": {
                        "type": "number",
                        "description": "End (seconds)",
                        "default": 1.0,
                        "minimum": 0.01,
                        "maximum": 1800
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/trim-video/run": {
      "post": {
        "operationId": "trim_video",
        "summary": "Trim video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. ",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "number",
                        "description": "Start (seconds)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 1800
                      },
                      "end": {
                        "type": "number",
                        "description": "End (seconds)",
                        "default": 1.0,
                        "minimum": 0.01,
                        "maximum": 1800
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/compress-video/run": {
      "post": {
        "operationId": "compress_video",
        "summary": "Compress video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Exports H.264 video and AAC audio in MP4. The first video/audio tracks are used; subtitle and extra tracks are omitted.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality setting (CRF, lower is sharper)",
                        "default": 28.0,
                        "minimum": 18,
                        "maximum": 40,
                        "multipleOf": 1
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-zip/run": {
      "post": {
        "operationId": "extract_zip",
        "summary": "Extract ZIP",
        "description": "List before extracting, sanitize paths, limit expanded bytes and surface unsupported encryption.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/create-zip/run": {
      "post": {
        "operationId": "create_zip",
        "summary": "Create ZIP",
        "description": "Select multiple files with predictable folder/name handling and download size feedback.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/list-archive-contents/run": {
      "post": {
        "operationId": "list_archive_contents",
        "summary": "List archive contents",
        "description": "List filenames/sizes without expanding all files.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/docx-to-pdf/run": {
      "post": {
        "operationId": "docx_to_pdf",
        "summary": "DOCX to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Rendered locally with LibreOffice. Font substitutions can change pagination. Files with external links or macros are rejected.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/odt-to-pdf/run": {
      "post": {
        "operationId": "odt_to_pdf",
        "summary": "Odt to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Rendered locally with LibreOffice. Font substitutions can change pagination. Files with external links or macros are rejected.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/epub-to-pdf/run": {
      "post": {
        "operationId": "epub_to_pdf",
        "summary": "EPUB to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Reflows unencrypted EPUB content onto A4 pages. Does not remove DRM.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/password-generator/run": {
      "post": {
        "operationId": "password_generator",
        "summary": "Password generator",
        "description": "Secure browser randomness; each selected group appears. Nothing is saved or uploaded.",
        "tags": [
          "privacy-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "length": {
                        "type": "number",
                        "description": "Length",
                        "default": 20.0
                      },
                      "upper": {
                        "type": "boolean",
                        "description": "Uppercase",
                        "default": true
                      },
                      "lower": {
                        "type": "boolean",
                        "description": "Lowercase",
                        "default": true
                      },
                      "digits": {
                        "type": "boolean",
                        "description": "Numbers",
                        "default": true
                      },
                      "symbols": {
                        "type": "boolean",
                        "description": "Symbols",
                        "default": true
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/passphrase-generator/run": {
      "post": {
        "operationId": "passphrase_generator",
        "summary": "Passphrase generator",
        "description": "Independent secure random selections from the 7,776-word EFF large wordlist. Six words provide about 77.5 bits of selection entropy. Never reuse a passphrase.",
        "tags": [
          "privacy-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "Word count",
                        "default": 6.0
                      },
                      "separator": {
                        "type": "string",
                        "description": "Separator",
                        "default": "-"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/inspect-file-metadata/run": {
      "post": {
        "operationId": "inspect_file_metadata",
        "summary": "Inspect file metadata",
        "description": "Initially inspect supported image metadata only.",
        "tags": [
          "privacy-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-background/run": {
      "post": {
        "operationId": "remove_background",
        "summary": "Remove background",
        "description": "Processed locally on this website’s server without an external conversion API. Uses the small U2Netp segmentation model. Fine hair, transparent objects, and difficult edges may need manual correction.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/upscale-image/run": {
      "post": {
        "operationId": "upscale_image",
        "summary": "Upscale image",
        "description": "Processed locally on this website’s server without an external conversion API. High-quality Lanczos resampling. This version increases resolution without an AI model or invented detail.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "scale": {
                        "type": "string",
                        "description": "Scale factor",
                        "default": "2",
                        "enum": [
                          "2",
                          "4"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/gif-maker/run": {
      "post": {
        "operationId": "gif_maker",
        "summary": "GIF maker",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. ",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "duration": {
                        "type": "number",
                        "description": "Frame duration (milliseconds)",
                        "default": 200.0,
                        "minimum": 20,
                        "maximum": 10000,
                        "multipleOf": 1
                      },
                      "loop": {
                        "type": "number",
                        "description": "Loop count (0 repeats forever)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 1000,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/compress-gif/run": {
      "post": {
        "operationId": "compress_gif",
        "summary": "Compress GIF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Reduces the palette and optimises frames. Timing is preserved. Some already optimised files may become larger.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "colors": {
                        "type": "string",
                        "description": "Palette colours",
                        "default": "64",
                        "enum": [
                          "32",
                          "64",
                          "128",
                          "256"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/resize-gif/run": {
      "post": {
        "operationId": "resize_gif",
        "summary": "Resize GIF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. ",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "width": {
                        "type": "number",
                        "description": "Width (pixels)",
                        "default": 480.0,
                        "minimum": 16,
                        "maximum": 1920,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/video-to-gif/run": {
      "post": {
        "operationId": "video_to_gif",
        "summary": "Video to GIF",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. ",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "number",
                        "description": "Start (seconds)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 1800
                      },
                      "duration": {
                        "type": "number",
                        "description": "Duration (seconds)",
                        "default": 3.0,
                        "minimum": 0.1,
                        "maximum": 15
                      },
                      "width": {
                        "type": "number",
                        "description": "Width (pixels)",
                        "default": 480.0,
                        "minimum": 16,
                        "maximum": 960,
                        "multipleOf": 1
                      },
                      "fps": {
                        "type": "number",
                        "description": "Frames per second",
                        "default": 10.0,
                        "minimum": 1,
                        "maximum": 25,
                        "multipleOf": 1
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/gif-to-mp4/run": {
      "post": {
        "operationId": "gif_to_mp4",
        "summary": "GIF to MP4",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Converts one animation cycle to silent H.264 video.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/webp-to-gif/run": {
      "post": {
        "operationId": "webp_to_gif",
        "summary": "WEBP to GIF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Preserves decoded animation frames and timing. GIF has fewer colours and only binary transparency.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/apng-to-gif/run": {
      "post": {
        "operationId": "apng_to_gif",
        "summary": "Apng to GIF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Preserves decoded animation frames and timing. GIF has fewer colours and only binary transparency.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-gif-frames/run": {
      "post": {
        "operationId": "extract_gif_frames",
        "summary": "Extract GIF frames",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Exports full composited PNG frames plus timing.json inside a ZIP.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/jpg-to-avif/run": {
      "post": {
        "operationId": "jpg_to_avif",
        "summary": "JPG to AVIF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. ",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality (%)",
                        "default": 85.0,
                        "minimum": 1,
                        "maximum": 100,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/crop-pdf/run": {
      "post": {
        "operationId": "crop_pdf",
        "summary": "Crop PDF",
        "description": "Cropping changes the visible area, not the underlying content. It is not redaction.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      },
                      "margin": {
                        "type": "number",
                        "description": "Crop margin (PDF points)",
                        "default": 36.0
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/resize-pdf-pages/run": {
      "post": {
        "operationId": "resize_pdf_pages",
        "summary": "Resize PDF pages",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "width": {
                        "type": "number",
                        "description": "Page width (points)",
                        "default": 595.0
                      },
                      "height": {
                        "type": "number",
                        "description": "Page height (points)",
                        "default": 842.0
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/watermark-pdf/run": {
      "post": {
        "operationId": "watermark_pdf",
        "summary": "Watermark PDF",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pages": {
                        "type": "string",
                        "description": "Pages (blank = all)",
                        "default": ""
                      },
                      "caption": {
                        "type": "string",
                        "description": "Watermark",
                        "default": "DRAFT"
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/annotate-pdf/run": {
      "post": {
        "operationId": "annotate_pdf",
        "summary": "Annotate PDF",
        "description": "Adds visible text to a page. Coordinates are PDF points; this is not secure redaction or a digital signature.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "page": {
                        "type": "number",
                        "description": "Page",
                        "default": 1.0
                      },
                      "x": {
                        "type": "number",
                        "description": "X from left (points)",
                        "default": 40.0
                      },
                      "y": {
                        "type": "number",
                        "description": "Y from bottom (points)",
                        "default": 40.0
                      },
                      "size": {
                        "type": "number",
                        "description": "Text size",
                        "default": 12.0
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/fill-pdf/run": {
      "post": {
        "operationId": "fill_pdf",
        "summary": "Fill PDF",
        "description": "Run with blank input to list field names. Then enter a JSON object mapping field names to values. Supports text, checkbox and choice fields.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/create-pdf-form/run": {
      "post": {
        "operationId": "create_pdf_form",
        "summary": "Create PDF form",
        "description": "Creates a fillable text-field form. Input example: [{\"name\":\"email\",\"label\":\"Email address\"}].",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/flatten-pdf/run": {
      "post": {
        "operationId": "flatten_pdf",
        "summary": "Flatten PDF",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sign-pdf/run": {
      "post": {
        "operationId": "sign_pdf",
        "summary": "Sign PDF",
        "description": "Places an uploaded visual signature. This is not certificate-based digital signing. Select the PDF and signature image together.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "page": {
                        "type": "number",
                        "description": "Page",
                        "default": 1.0
                      },
                      "x": {
                        "type": "number",
                        "description": "X from left (points)",
                        "default": 40.0
                      },
                      "y": {
                        "type": "number",
                        "description": "Y from bottom (points)",
                        "default": 40.0
                      },
                      "width": {
                        "type": "number",
                        "description": "Signature width (points)",
                        "default": 150.0
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/protect-pdf/run": {
      "post": {
        "operationId": "protect_pdf",
        "summary": "Protect PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. AES-256 encryption. Store your password safely; it cannot be recovered here.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "password": {
                        "type": "string",
                        "description": "New opening password",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/unlock-pdf/run": {
      "post": {
        "operationId": "unlock_pdf",
        "summary": "Unlock PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Requires the password for an encrypted document. Does not crack or recover unknown passwords.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "password": {
                        "type": "string",
                        "description": "Current opening password",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/redact-pdf/run": {
      "post": {
        "operationId": "redact_pdf",
        "summary": "Redact PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Permanently removes matching selectable text and overlapping image/vector content, then strips metadata, annotations, and attachments. Scanned text needs OCR first. Inspect the output before sharing.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "search": {
                        "type": "string",
                        "description": "Exact text to permanently remove",
                        "default": ""
                      },
                      "page": {
                        "type": "number",
                        "description": "Page (0 means all pages)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 500,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-pdf-metadata/run": {
      "post": {
        "operationId": "remove_pdf_metadata",
        "summary": "Remove PDF metadata",
        "description": "Page numbers start at 1. Password-encrypted PDFs must be unlocked first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-pdf-images/run": {
      "post": {
        "operationId": "extract_pdf_images",
        "summary": "Extract PDF images",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Extracts embedded raster images at their original resolution, with soft masks applied when supported. Does not render whole pages.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ocr-pdf/run": {
      "post": {
        "operationId": "ocr_pdf",
        "summary": "OCR PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Creates a searchable PDF from rendered pages. Original vector content and forms are flattened. Up to 30 pages; review recognised text.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "language": {
                        "type": "string",
                        "description": "OCR language",
                        "default": "eng",
                        "enum": [
                          "eng"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pdf-to-word/run": {
      "post": {
        "operationId": "pdf_to_word",
        "summary": "PDF to word",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Creates editable paragraphs in reading order. Complex layouts, forms, and tables are not reconstructed. Scans need OCR first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pdf-to-excel/run": {
      "post": {
        "operationId": "pdf_to_excel",
        "summary": "PDF to excel",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Exports detected tables to separate worksheets. Inspect merged cells and reading order. Scans need OCR first.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pdf-to-powerpoint/run": {
      "post": {
        "operationId": "pdf_to_powerpoint",
        "summary": "PDF to powerpoint",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Creates one slide per page using a rendered image. Slide contents are not individually editable.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pdf-to-pdfa/run": {
      "post": {
        "operationId": "pdf_to_pdfa",
        "summary": "PDF to pdfa",
        "description": "Convert a PDF to PDF/A-2b using local Ghostscript and verify conformance with veraPDF before download. Up to 100 pages and 20 MiB. Review page appearance. Files are processed on this server.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/repair-pdf/run": {
      "post": {
        "operationId": "repair_pdf",
        "summary": "Repair PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Lossless structural optimisation and supported structural recovery. No image downsampling or guarantee of smaller output.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/webpage-to-pdf/run": {
      "post": {
        "operationId": "webpage_to_pdf",
        "summary": "Webpage to PDF",
        "description": "Processed locally on this website’s server without an external conversion API. Fetches a public URL and exports static text and links. JavaScript, images, and external stylesheets are not rendered. Private-network URLs are rejected.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/heic-to-pdf/run": {
      "post": {
        "operationId": "heic_to_pdf",
        "summary": "HEIC to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Converts the primary HEIC image with orientation applied. Multi-image sequences and HDR preservation are not supported.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality (%)",
                        "default": 85.0,
                        "minimum": 1,
                        "maximum": 100,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/scan-to-pdf/run": {
      "post": {
        "operationId": "scan_to_pdf",
        "summary": "Scan to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Upload photos or scans in page order. Automatic perspective correction works best with a clear page border. Review the exported PDF. Direct camera capture is not included yet.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "crop": {
                        "type": "boolean",
                        "description": "Automatically detect and crop page edges",
                        "default": true
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pages-per-sheet/run": {
      "post": {
        "operationId": "pages_per_sheet",
        "summary": "Pages per sheet",
        "description": "Fits pages onto landscape A4 sheets. Existing page content is preserved as embedded PDF pages.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "columns": {
                        "type": "number",
                        "description": "Columns",
                        "default": 2.0
                      },
                      "rows": {
                        "type": "number",
                        "description": "Rows",
                        "default": 1.0
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-tsv/run": {
      "post": {
        "operationId": "csv_to_tsv",
        "summary": "CSV to TSV",
        "description": "Convert CSV to TSV.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-xml/run": {
      "post": {
        "operationId": "csv_to_xml",
        "summary": "CSV to XML",
        "description": "Convert CSV to XML.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/xml-to-csv/run": {
      "post": {
        "operationId": "xml_to_csv",
        "summary": "XML to CSV",
        "description": "Convert XML to CSV.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-yaml/run": {
      "post": {
        "operationId": "csv_to_yaml",
        "summary": "CSV to YAML",
        "description": "Convert CSV to YAML.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/yaml-to-csv/run": {
      "post": {
        "operationId": "yaml_to_csv",
        "summary": "YAML to CSV",
        "description": "Convert YAML to CSV.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-sql/run": {
      "post": {
        "operationId": "csv_to_sql",
        "summary": "CSV to SQL",
        "description": "ANSI-style quoted identifiers and string values. Review column types before executing SQL.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "table": {
                        "type": "string",
                        "description": "SQL table",
                        "default": "data"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sql-to-csv/run": {
      "post": {
        "operationId": "sql_to_csv",
        "summary": "SQL to CSV",
        "description": "Parses literal MySQL-style INSERT statements. Does not execute SQL or connect to a database.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-html/run": {
      "post": {
        "operationId": "csv_to_html",
        "summary": "CSV to HTML",
        "description": "Convert CSV to HTML.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-pdf/run": {
      "post": {
        "operationId": "csv_to_pdf",
        "summary": "CSV to PDF",
        "description": "Plain-text PDF export. CSV rows are rendered as text; wide tables may need a spreadsheet layout. Standard PDF font character coverage applies.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-validator/run": {
      "post": {
        "operationId": "csv_validator",
        "summary": "CSV validator",
        "description": "Check CSV headers, quoting and row lengths.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/split-csv/run": {
      "post": {
        "operationId": "split_csv",
        "summary": "Split CSV",
        "description": "Split CSV text into smaller files with repeated headers.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "size": {
                        "type": "number",
                        "description": "Rows per split file",
                        "default": 1000.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/transpose-csv/run": {
      "post": {
        "operationId": "transpose_csv",
        "summary": "Transpose CSV",
        "description": "Rows-to-columns with header options and empty-cell handling.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/change-csv-delimiter/run": {
      "post": {
        "operationId": "change_csv_delimiter",
        "summary": "Change CSV delimiter",
        "description": "Parse and reserialize correctly.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "outputDelimiter": {
                        "type": "string",
                        "description": "Output separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-to-geojson/run": {
      "post": {
        "operationId": "csv_to_geojson",
        "summary": "CSV to geojson",
        "description": "Map latitude/longitude columns, validate coordinates and preserve chosen properties.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "lat": {
                        "type": "string",
                        "description": "Latitude column",
                        "default": "latitude"
                      },
                      "lon": {
                        "type": "string",
                        "description": "Longitude column",
                        "default": "longitude"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/geojson-to-csv/run": {
      "post": {
        "operationId": "geojson_to_csv",
        "summary": "Geojson to CSV",
        "description": "Define supported geometry flattening and property collisions.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-xml/run": {
      "post": {
        "operationId": "json_to_xml",
        "summary": "JSON to XML",
        "description": "Convert JSON to XML.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-excel/run": {
      "post": {
        "operationId": "json_to_excel",
        "summary": "JSON to excel",
        "description": "CSV cells are stored as text to preserve leading zeros and prevent formula execution. Nested JSON values become JSON strings.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sheet": {
                        "type": "string",
                        "description": "Worksheet name (blank = first)",
                        "default": ""
                      },
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/excel-to-json/run": {
      "post": {
        "operationId": "excel_to_json",
        "summary": "Excel to JSON",
        "description": "Uses stored cell values; formulas are not recalculated. Check dates, identifiers and cached formula results. CSV/JSON export reads one worksheet.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sheet": {
                        "type": "string",
                        "description": "Worksheet name (blank = first)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-markdown/run": {
      "post": {
        "operationId": "json_to_markdown",
        "summary": "JSON to markdown",
        "description": "Convert JSON to Markdown.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-jsonl/run": {
      "post": {
        "operationId": "json_to_jsonl",
        "summary": "JSON to jsonl",
        "description": "Convert JSON to JSON Lines.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-toml/run": {
      "post": {
        "operationId": "json_to_toml",
        "summary": "JSON to TOML",
        "description": "Convert JSON to TOML.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/toml-to-json/run": {
      "post": {
        "operationId": "toml_to_json",
        "summary": "TOML to JSON",
        "description": "Convert TOML to JSON.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-line-breaks/run": {
      "post": {
        "operationId": "remove_line_breaks",
        "summary": "Remove line breaks",
        "description": "Replace each line break with a space.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-empty-lines/run": {
      "post": {
        "operationId": "remove_empty_lines",
        "summary": "Remove empty lines",
        "description": "Remove blank and whitespace-only lines.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/add-prefix-suffix/run": {
      "post": {
        "operationId": "add_prefix_suffix",
        "summary": "Add prefix suffix",
        "description": "Add a prefix or suffix to every line.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "prefix": {
                        "type": "string",
                        "description": "Prefix",
                        "default": ""
                      },
                      "suffix": {
                        "type": "string",
                        "description": "Suffix",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/reverse-text/run": {
      "post": {
        "operationId": "reverse_text",
        "summary": "Reverse text",
        "description": "Reverse the order of visible characters.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/randomize-list/run": {
      "post": {
        "operationId": "randomize_list",
        "summary": "Randomize list",
        "description": "Shuffle lines into a random order.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/split-text/run": {
      "post": {
        "operationId": "split_text",
        "summary": "Split text",
        "description": "Split text at an exact separator, placing each part on a new line.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "separator": {
                        "type": "string",
                        "description": "Split at",
                        "default": ","
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/join-text/run": {
      "post": {
        "operationId": "join_text",
        "summary": "Join text",
        "description": "Join lines with a separator of your choice.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "separator": {
                        "type": "string",
                        "description": "Join with",
                        "default": ", "
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/repeat-text/run": {
      "post": {
        "operationId": "repeat_text",
        "summary": "Repeat text",
        "description": "Repeat text with a separator between copies.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "Repeat count",
                        "default": 3.0,
                        "minimum": 1,
                        "maximum": 10000,
                        "multipleOf": 1
                      },
                      "separator": {
                        "type": "string",
                        "description": "Between repetitions",
                        "default": " "
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/filter-lines/run": {
      "post": {
        "operationId": "filter_lines",
        "summary": "Filter lines",
        "description": "Keep or remove lines containing a phrase.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "find": {
                        "type": "string",
                        "description": "Contains",
                        "default": ""
                      },
                      "action": {
                        "type": "string",
                        "description": "Action",
                        "default": "Keep matching",
                        "enum": [
                          "Keep matching",
                          "Remove matching"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/word-frequency/run": {
      "post": {
        "operationId": "word_frequency",
        "summary": "Word frequency",
        "description": "Count word occurrences, starting with the most frequent.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-emails/run": {
      "post": {
        "operationId": "extract_emails",
        "summary": "Extract emails",
        "description": "Find unique email-like addresses in pasted text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-phone-numbers/run": {
      "post": {
        "operationId": "extract_phone_numbers",
        "summary": "Extract phone numbers",
        "description": "Find possible phone numbers in pasted text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/morse-code-translator/run": {
      "post": {
        "operationId": "morse_code_translator",
        "summary": "Morse code translator",
        "description": "Translate letters and digits to or from Morse code.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "direction": {
                        "type": "string",
                        "description": "Direction",
                        "default": "Encode",
                        "enum": [
                          "Encode",
                          "Decode"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/text-to-image/run": {
      "post": {
        "operationId": "text_to_image",
        "summary": "Text to image",
        "description": "SVG export uses your system sans-serif font. Check wrapping and font appearance in the destination.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": "number",
                        "description": "Font size",
                        "default": 48.0
                      },
                      "width": {
                        "type": "number",
                        "description": "Canvas width",
                        "default": 800.0
                      },
                      "height": {
                        "type": "number",
                        "description": "Canvas height",
                        "default": 300.0
                      },
                      "color": {
                        "type": "string",
                        "description": "Text",
                        "default": "#171717"
                      },
                      "background": {
                        "type": "string",
                        "description": "Background",
                        "default": "#ffffff"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/html-formatter/run": {
      "post": {
        "operationId": "html_formatter",
        "summary": "HTML formatter",
        "description": "Formatting parses your source; it does not execute it.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/css-formatter/run": {
      "post": {
        "operationId": "css_formatter",
        "summary": "CSS formatter",
        "description": "Formatting parses your source; it does not execute it.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/javascript-formatter/run": {
      "post": {
        "operationId": "javascript_formatter",
        "summary": "Javascript formatter",
        "description": "Formatting parses your source; it does not execute it.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/xml-formatter/run": {
      "post": {
        "operationId": "xml_formatter",
        "summary": "XML formatter",
        "description": "Pretty-print/minify with safe parsing and explicit mixed-content handling.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sql-formatter/run": {
      "post": {
        "operationId": "sql_formatter",
        "summary": "SQL formatter",
        "description": "Select dialect and format without executing queries.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-escape/run": {
      "post": {
        "operationId": "json_escape",
        "summary": "JSON escape",
        "description": "Escape/unescape string literals with visible control-character handling.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "direction": {
                        "type": "string",
                        "description": "Direction",
                        "default": "Encode",
                        "enum": [
                          "Encode",
                          "Decode"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/binary-to-text/run": {
      "post": {
        "operationId": "binary_to_text",
        "summary": "Binary to text",
        "description": "Decode binary byte values into UTF-8 text.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/hex-to-text/run": {
      "post": {
        "operationId": "hex_to_text",
        "summary": "Hex to text",
        "description": "Decode hexadecimal byte values into UTF-8 text.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ascii-to-text/run": {
      "post": {
        "operationId": "ascii_to_text",
        "summary": "ASCII to text",
        "description": "Decimal/hex ASCII codes and explicit distinction from Unicode.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/number-base-converter/run": {
      "post": {
        "operationId": "number_base_converter",
        "summary": "Number base converter",
        "description": "Binary/octal/decimal/hex with large-integer precision and signed-number rules.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "from": {
                        "type": "number",
                        "description": "From base",
                        "default": 10.0
                      },
                      "to": {
                        "type": "number",
                        "description": "To base",
                        "default": 16.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/url-parser/run": {
      "post": {
        "operationId": "url_parser",
        "summary": "URL parser",
        "description": "Show scheme, host, port, path, query and fragment.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-diff/run": {
      "post": {
        "operationId": "json_diff",
        "summary": "JSON diff",
        "description": "Structural rather than textual comparison.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "other": {
                        "type": "string",
                        "description": "Second JSON",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/gradient-generator/run": {
      "post": {
        "operationId": "gradient_generator",
        "summary": "Gradient generator",
        "description": "Linear/radial stops, angle and CSS export.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "a": {
                        "type": "string",
                        "description": "Start",
                        "default": "#3366cc"
                      },
                      "b": {
                        "type": "string",
                        "description": "End",
                        "default": "#ff5599"
                      },
                      "angle": {
                        "type": "number",
                        "description": "Angle",
                        "default": 90.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/color-shades/run": {
      "post": {
        "operationId": "color_shades",
        "summary": "Color shades",
        "description": "Generate tints/shades with defined color-space interpolation and HEX/CSS output.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "color": {
                        "type": "string",
                        "description": "Base color",
                        "default": "#3366cc"
                      },
                      "n": {
                        "type": "number",
                        "description": "Shades",
                        "default": 9.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/email-qr-code/run": {
      "post": {
        "operationId": "email_qr_code",
        "summary": "Email QR code",
        "description": "Download an SVG QR code. Anyone who scans it can read its contents; the code does not encrypt your data.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "correction": {
                        "type": "string",
                        "description": "Error correction",
                        "default": "M",
                        "enum": [
                          "M",
                          "L",
                          "Q",
                          "H"
                        ]
                      },
                      "email": {
                        "type": "string",
                        "description": "Email",
                        "default": ""
                      },
                      "message": {
                        "type": "string",
                        "description": "Message",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sms-qr-code/run": {
      "post": {
        "operationId": "sms_qr_code",
        "summary": "Sms QR code",
        "description": "Download an SVG QR code. Anyone who scans it can read its contents; the code does not encrypt your data.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "correction": {
                        "type": "string",
                        "description": "Error correction",
                        "default": "M",
                        "enum": [
                          "M",
                          "L",
                          "Q",
                          "H"
                        ]
                      },
                      "phone": {
                        "type": "string",
                        "description": "Phone including country code",
                        "default": ""
                      },
                      "message": {
                        "type": "string",
                        "description": "Message",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/event-qr-code/run": {
      "post": {
        "operationId": "event_qr_code",
        "summary": "Event QR code",
        "description": "Download an SVG QR code. Anyone who scans it can read its contents; the code does not encrypt your data.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "correction": {
                        "type": "string",
                        "description": "Error correction",
                        "default": "M",
                        "enum": [
                          "M",
                          "L",
                          "Q",
                          "H"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Event title",
                        "default": ""
                      },
                      "start": {
                        "type": "string",
                        "description": "Event start UTC (YYYYMMDDTHHMMSSZ)",
                        "default": ""
                      },
                      "end": {
                        "type": "string",
                        "description": "Event end UTC (YYYYMMDDTHHMMSSZ)",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/whatsapp-link/run": {
      "post": {
        "operationId": "whatsapp_link",
        "summary": "Whatsapp link",
        "description": "International number and percent-encoded message.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "message": {
                        "type": "string",
                        "description": "Message",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sitemap-generator/run": {
      "post": {
        "operationId": "sitemap_generator",
        "summary": "Sitemap generator",
        "description": "One absolute URL per line. Include only canonical, indexable pages.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/broken-link-checker/run": {
      "post": {
        "operationId": "broken_link_checker",
        "summary": "Broken link checker",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "marketing-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/age-calculator/run": {
      "post": {
        "operationId": "age_calculator",
        "summary": "Age calculator",
        "description": "Calendar age and next birthday.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "string",
                        "description": "Start date",
                        "default": "2026-01-01"
                      },
                      "end": {
                        "type": "string",
                        "description": "End date",
                        "default": "2026-12-31"
                      },
                      "holidays": {
                        "type": "string",
                        "description": "Holidays to exclude (YYYY-MM-DD, comma separated)",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/time-card-calculator/run": {
      "post": {
        "operationId": "time_card_calculator",
        "summary": "Time card calculator",
        "description": "Daily intervals, breaks and totals.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "string",
                        "description": "Start time",
                        "default": "09:00"
                      },
                      "end": {
                        "type": "string",
                        "description": "End time",
                        "default": "17:00"
                      },
                      "break": {
                        "type": "number",
                        "description": "Unpaid break (minutes)",
                        "default": 30.0
                      },
                      "overnight": {
                        "type": "boolean",
                        "description": "Ends next day",
                        "default": false
                      },
                      "rate": {
                        "type": "number",
                        "description": "Hourly rate",
                        "default": 20.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/time-calculator/run": {
      "post": {
        "operationId": "time_calculator",
        "summary": "Time calculator",
        "description": "Add/subtract hours/minutes/seconds and convert decimal hours.",
        "tags": [
          "date-time-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "string",
                        "description": "Start time",
                        "default": "09:00"
                      },
                      "end": {
                        "type": "string",
                        "description": "End time",
                        "default": "17:00"
                      },
                      "break": {
                        "type": "number",
                        "description": "Unpaid break (minutes)",
                        "default": 30.0
                      },
                      "overnight": {
                        "type": "boolean",
                        "description": "Ends next day",
                        "default": false
                      },
                      "rate": {
                        "type": "number",
                        "description": "Hourly rate",
                        "default": 20.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/average/run": {
      "post": {
        "operationId": "average",
        "summary": "Average",
        "description": "Find the mean, median, sum, minimum, and maximum of a list of numbers.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/fractions/run": {
      "post": {
        "operationId": "fractions",
        "summary": "Fractions",
        "description": "Add, subtract, multiply, or divide two fractions.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "a": {
                        "type": "number",
                        "description": "Numerator A",
                        "default": 1.0
                      },
                      "b": {
                        "type": "number",
                        "description": "Denominator A",
                        "default": 2.0
                      },
                      "op": {
                        "type": "string",
                        "description": "Operation",
                        "default": "+",
                        "enum": [
                          "+",
                          "-",
                          "×",
                          "÷"
                        ]
                      },
                      "c": {
                        "type": "number",
                        "description": "Numerator B",
                        "default": 1.0
                      },
                      "d": {
                        "type": "number",
                        "description": "Denominator B",
                        "default": 3.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/rounding/run": {
      "post": {
        "operationId": "rounding",
        "summary": "Rounding",
        "description": "Round a number to a chosen number of decimal places.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 3.14159
                      },
                      "places": {
                        "type": "number",
                        "description": "Decimal places",
                        "default": 2.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/scientific-notation/run": {
      "post": {
        "operationId": "scientific_notation",
        "summary": "Scientific notation",
        "description": "Write a number in scientific notation.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 123456.0
                      },
                      "places": {
                        "type": "number",
                        "description": "Decimal places",
                        "default": 4.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/standard-deviation/run": {
      "post": {
        "operationId": "standard_deviation",
        "summary": "Standard deviation",
        "description": "Calculate the mean and standard deviation of a set of numbers.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/lcm/run": {
      "post": {
        "operationId": "lcm",
        "summary": "Lcm",
        "description": "Find the least common multiple of whole numbers.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/tip/run": {
      "post": {
        "operationId": "tip",
        "summary": "Tip",
        "description": "Calculate a tip, the total bill, and each person’s share.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "bill": {
                        "type": "number",
                        "description": "Bill",
                        "default": 100.0
                      },
                      "tip": {
                        "type": "number",
                        "description": "Tip (%)",
                        "default": 15.0
                      },
                      "people": {
                        "type": "number",
                        "description": "People",
                        "default": 2.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/circle/run": {
      "post": {
        "operationId": "circle",
        "summary": "Circle",
        "description": "Calculate a circle’s diameter, circumference, and area from its radius.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "r": {
                        "type": "number",
                        "description": "Radius",
                        "default": 5.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/triangle/run": {
      "post": {
        "operationId": "triangle",
        "summary": "Triangle",
        "description": "Calculate a triangle’s perimeter and area from its three side lengths.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "a": {
                        "type": "number",
                        "description": "Side a",
                        "default": 3.0
                      },
                      "b": {
                        "type": "number",
                        "description": "Side b",
                        "default": 4.0
                      },
                      "c": {
                        "type": "number",
                        "description": "Side c",
                        "default": 5.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/volume-calculator/run": {
      "post": {
        "operationId": "volume_calculator",
        "summary": "Volume calculator",
        "description": "Calculate the volume of a box, cylinder, or sphere.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "shape": {
                        "type": "string",
                        "description": "Shape",
                        "default": "Box",
                        "enum": [
                          "Box",
                          "Cylinder",
                          "Sphere"
                        ]
                      },
                      "a": {
                        "type": "number",
                        "description": "Length or radius",
                        "default": 3.0
                      },
                      "b": {
                        "type": "number",
                        "description": "Width or cylinder height",
                        "default": 4.0
                      },
                      "c": {
                        "type": "number",
                        "description": "Box height",
                        "default": 5.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/square-footage/run": {
      "post": {
        "operationId": "square_footage",
        "summary": "Square footage",
        "description": "Calculate rectangular floor area in square feet and square meters.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "length": {
                        "type": "number",
                        "description": "Length (feet)",
                        "default": 12.0
                      },
                      "width": {
                        "type": "number",
                        "description": "Width (feet)",
                        "default": 10.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/random-number/run": {
      "post": {
        "operationId": "random_number",
        "summary": "Random number",
        "description": "Generate random whole numbers within an inclusive range.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "min": {
                        "type": "number",
                        "description": "Minimum",
                        "default": 1.0
                      },
                      "max": {
                        "type": "number",
                        "description": "Maximum",
                        "default": 100.0
                      },
                      "n": {
                        "type": "number",
                        "description": "How many",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/coin-flip/run": {
      "post": {
        "operationId": "coin_flip",
        "summary": "Coin flip",
        "description": "Flip a virtual coin and get Heads or Tails.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/dice-roller/run": {
      "post": {
        "operationId": "dice_roller",
        "summary": "Dice roller",
        "description": "Roll virtual dice and see each roll and the total.",
        "tags": [
          "calculators"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sides": {
                        "type": "number",
                        "description": "Sides",
                        "default": 6.0
                      },
                      "n": {
                        "type": "number",
                        "description": "Dice",
                        "default": 2.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pressure/run": {
      "post": {
        "operationId": "pressure",
        "summary": "Pressure",
        "description": "Convert between pascals, kilopascals, bar, atmospheres, and psi.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "Pa",
                        "enum": [
                          "Pa",
                          "kPa",
                          "bar",
                          "atm",
                          "psi"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "kPa",
                        "enum": [
                          "Pa",
                          "kPa",
                          "bar",
                          "atm",
                          "psi"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/energy/run": {
      "post": {
        "operationId": "energy",
        "summary": "Energy",
        "description": "Convert between joules, calories, watt-hours, and kilowatt-hours.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "J",
                        "enum": [
                          "J",
                          "kJ",
                          "cal",
                          "kcal",
                          "Wh",
                          "kWh"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "kJ",
                        "enum": [
                          "J",
                          "kJ",
                          "cal",
                          "kcal",
                          "Wh",
                          "kWh"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/power/run": {
      "post": {
        "operationId": "power",
        "summary": "Power",
        "description": "Convert between watts, kilowatts, megawatts, and horsepower.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "W",
                        "enum": [
                          "W",
                          "kW",
                          "MW",
                          "hp"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "kW",
                        "enum": [
                          "W",
                          "kW",
                          "MW",
                          "hp"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/angle/run": {
      "post": {
        "operationId": "angle",
        "summary": "Angle",
        "description": "Convert between degrees, radians, and turns.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "degree",
                        "enum": [
                          "degree",
                          "radian",
                          "turn"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "radian",
                        "enum": [
                          "degree",
                          "radian",
                          "turn"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/time-units/run": {
      "post": {
        "operationId": "time_units",
        "summary": "Time units",
        "description": "Convert between milliseconds, seconds, minutes, hours, days, and weeks.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Value",
                        "default": 1.0
                      },
                      "from": {
                        "type": "string",
                        "description": "From",
                        "default": "second",
                        "enum": [
                          "second",
                          "millisecond",
                          "minute",
                          "hour",
                          "day",
                          "week"
                        ]
                      },
                      "to": {
                        "type": "string",
                        "description": "To",
                        "default": "millisecond",
                        "enum": [
                          "second",
                          "millisecond",
                          "minute",
                          "hour",
                          "day",
                          "week"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/celsius-to-fahrenheit/run": {
      "post": {
        "operationId": "celsius_to_fahrenheit",
        "summary": "Celsius to fahrenheit",
        "description": "Direction-specific preset and reverse mode.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Celsius",
                        "default": 20.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/fahrenheit-to-celsius/run": {
      "post": {
        "operationId": "fahrenheit_to_celsius",
        "summary": "Fahrenheit to celsius",
        "description": "Direction-specific examples and reverse mode.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "Fahrenheit",
                        "default": 68.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/inches-to-cm/run": {
      "post": {
        "operationId": "inches_to_cm",
        "summary": "Inches to cm",
        "description": "Decimal/fraction input and explicit output rounding.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "in",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/lbs-to-kg/run": {
      "post": {
        "operationId": "lbs_to_kg",
        "summary": "Lbs to kg",
        "description": "Direction-specific input and examples with verified constant.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "lb",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mm-to-inches/run": {
      "post": {
        "operationId": "mm_to_inches",
        "summary": "Mm to inches",
        "description": "Decimal/fractional inches and precision controls.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "mm",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/meters-to-feet/run": {
      "post": {
        "operationId": "meters_to_feet",
        "summary": "Meters to feet",
        "description": "Decimal feet versus feet-and-inches outputs explicitly separated.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "m",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/km-to-miles/run": {
      "post": {
        "operationId": "km_to_miles",
        "summary": "Km to miles",
        "description": "Use international mile.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "km",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/grams-to-ounces/run": {
      "post": {
        "operationId": "grams_to_ounces",
        "summary": "Grams to ounces",
        "description": "Distinguish avoirdupois from troy ounces.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "g",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/liters-to-gallons/run": {
      "post": {
        "operationId": "liters_to_gallons",
        "summary": "Liters to gallons",
        "description": "US liquid versus Imperial gallon selector visible by default.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "L",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mph-to-kmh/run": {
      "post": {
        "operationId": "mph_to_kmh",
        "summary": "Mph to kmh",
        "description": "Preset speed direction and consistent decimal precision.",
        "tags": [
          "unit-converters"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "value": {
                        "type": "number",
                        "description": "mph",
                        "default": 1.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ass-to-srt/run": {
      "post": {
        "operationId": "ass_to_srt",
        "summary": "Ass to SRT",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/srt-to-ass/run": {
      "post": {
        "operationId": "srt_to_ass",
        "summary": "SRT to ass",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/clean-subtitles/run": {
      "post": {
        "operationId": "clean_subtitles",
        "summary": "Clean subtitles",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/merge-subtitles/run": {
      "post": {
        "operationId": "merge_subtitles",
        "summary": "Merge subtitles",
        "description": "Merges on the existing timeline; files are not concatenated end-to-end.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/subtitle-editor/run": {
      "post": {
        "operationId": "subtitle_editor",
        "summary": "Subtitle editor",
        "description": "Paste editable subtitle text or use Open text file. Styling and cue layout metadata are normalized; review overlaps after editing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-subtitles/run": {
      "post": {
        "operationId": "extract_subtitles",
        "summary": "Extract subtitles",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Extracts a selectable text subtitle track as SRT. Burned-in captions and bitmap subtitle tracks are not supported.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "track": {
                        "type": "number",
                        "description": "Subtitle track (starting at 0)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 20,
                        "multipleOf": 1
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/subtitles-to-pdf/run": {
      "post": {
        "operationId": "subtitles_to_pdf",
        "summary": "Subtitles to PDF",
        "description": "Plain-text PDF export. CSV rows are rendered as text; wide tables may need a spreadsheet layout. Standard PDF font character coverage applies.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mov-to-mp4/run": {
      "post": {
        "operationId": "mov_to_mp4",
        "summary": "Mov to MP4",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Exports H.264 video and AAC audio in MP4. The first video/audio tracks are used; subtitle and extra tracks are omitted.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality setting (CRF, lower is sharper)",
                        "default": 28.0,
                        "minimum": 18,
                        "maximum": 40,
                        "multipleOf": 1
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mkv-to-mp4/run": {
      "post": {
        "operationId": "mkv_to_mp4",
        "summary": "Mkv to MP4",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Exports H.264 video and AAC audio in MP4. The first video/audio tracks are used; subtitle and extra tracks are omitted.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality setting (CRF, lower is sharper)",
                        "default": 28.0,
                        "minimum": 18,
                        "maximum": 40,
                        "multipleOf": 1
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/webm-to-mp4/run": {
      "post": {
        "operationId": "webm_to_mp4",
        "summary": "Webm to MP4",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Exports H.264 video and AAC audio in MP4. The first video/audio tracks are used; subtitle and extra tracks are omitted.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "quality": {
                        "type": "number",
                        "description": "Quality setting (CRF, lower is sharper)",
                        "default": 28.0,
                        "minimum": 18,
                        "maximum": 40,
                        "multipleOf": 1
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/flac-to-mp3/run": {
      "post": {
        "operationId": "flac_to_mp3",
        "summary": "Flac to MP3",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Audio is processed locally with FFmpeg. Lossy conversion does not recover lost detail.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "bitrate": {
                        "type": "string",
                        "description": "MP3 bitrate (kbps)",
                        "default": "128",
                        "enum": [
                          "64",
                          "96",
                          "128",
                          "192",
                          "256",
                          "320"
                        ]
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mp3-to-wav/run": {
      "post": {
        "operationId": "mp3_to_wav",
        "summary": "MP3 to WAV",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Audio is processed locally with FFmpeg. Lossy conversion does not recover lost detail.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/merge-audio/run": {
      "post": {
        "operationId": "merge_audio",
        "summary": "Merge audio",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Joins files in the selected order, resampling to stereo 44.1 kHz WAV.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/compress-audio/run": {
      "post": {
        "operationId": "compress_audio",
        "summary": "Compress audio",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Audio is processed locally with FFmpeg. Lossy conversion does not recover lost detail.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "bitrate": {
                        "type": "string",
                        "description": "MP3 bitrate (kbps)",
                        "default": "128",
                        "enum": [
                          "64",
                          "96",
                          "128",
                          "192",
                          "256",
                          "320"
                        ]
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/change-audio-speed/run": {
      "post": {
        "operationId": "change_audio_speed",
        "summary": "Change audio speed",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Preserves pitch and exports WAV.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "speed": {
                        "type": "number",
                        "description": "Speed multiplier",
                        "default": 1.25,
                        "minimum": 0.5,
                        "maximum": 2
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/increase-audio-volume/run": {
      "post": {
        "operationId": "increase_audio_volume",
        "summary": "Increase audio volume",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Uses a limiter to reduce clipping and exports WAV.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "gain": {
                        "type": "number",
                        "description": "Gain (decibels)",
                        "default": 3.0,
                        "minimum": -30,
                        "maximum": 20
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/merge-video/run": {
      "post": {
        "operationId": "merge_video",
        "summary": "Merge video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Joins clips in order at 640 × 360. All clips must either have audio or have no audio.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/resize-video/run": {
      "post": {
        "operationId": "resize_video",
        "summary": "Resize video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. ",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "width": {
                        "type": "number",
                        "description": "Width (pixels, even number)",
                        "default": 640.0,
                        "minimum": 16,
                        "maximum": 1920
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/crop-video/run": {
      "post": {
        "operationId": "crop_video",
        "summary": "Crop video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. ",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "x": {
                        "type": "number",
                        "description": "Left (pixels)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 4096,
                        "multipleOf": 1
                      },
                      "y": {
                        "type": "number",
                        "description": "Top (pixels)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 4096,
                        "multipleOf": 1
                      },
                      "width": {
                        "type": "number",
                        "description": "Width (pixels, even number)",
                        "default": 320.0,
                        "minimum": 16,
                        "maximum": 1920
                      },
                      "height": {
                        "type": "number",
                        "description": "Height (pixels, even number)",
                        "default": 240.0,
                        "minimum": 16,
                        "maximum": 1080
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/rotate-video/run": {
      "post": {
        "operationId": "rotate_video",
        "summary": "Rotate video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. ",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "angle": {
                        "type": "string",
                        "description": "Rotation",
                        "default": "90",
                        "enum": [
                          "90",
                          "180",
                          "270"
                        ]
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mute-video/run": {
      "post": {
        "operationId": "mute_video",
        "summary": "Mute video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Removes audio tracks from the exported MP4.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/change-video-speed/run": {
      "post": {
        "operationId": "change_video_speed",
        "summary": "Change video speed",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Adjusts video timing and audio speed together, preserving audio pitch.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "speed": {
                        "type": "number",
                        "description": "Speed multiplier",
                        "default": 1.25,
                        "minimum": 0.5,
                        "maximum": 2
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/add-subtitles-to-video/run": {
      "post": {
        "operationId": "add_subtitles_to_video",
        "summary": "Add subtitles to video",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Choose one video and one SRT file. Adds a selectable subtitle track to MP4; subtitles are not burned into the picture.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-rar/run": {
      "post": {
        "operationId": "extract_rar",
        "summary": "Extract rar",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Exports a ZIP of extracted regular files. Paths, symbolic links, entry count, and expanded size are checked.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "password": {
                        "type": "string",
                        "description": "Archive password (if needed)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-7z/run": {
      "post": {
        "operationId": "extract_7z",
        "summary": "Extract 7z",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Exports a ZIP of extracted regular files. Paths, symbolic links, entry count, and expanded size are checked.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "password": {
                        "type": "string",
                        "description": "Archive password (if needed)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/extract-tar-gz/run": {
      "post": {
        "operationId": "extract_tar_gz",
        "summary": "Extract tar gz",
        "description": "Supports basic USTAR/TAR.GZ archives; rejects links and unsupported extended headers. Maximum 100 MB expanded data.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/rar-to-zip/run": {
      "post": {
        "operationId": "rar_to_zip",
        "summary": "Rar to ZIP",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Exports a ZIP of extracted regular files. Paths, symbolic links, entry count, and expanded size are checked.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "password": {
                        "type": "string",
                        "description": "Archive password (if needed)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/7z-to-zip/run": {
      "post": {
        "operationId": "7z_to_zip",
        "summary": "7z to ZIP",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Exports a ZIP of extracted regular files. Paths, symbolic links, entry count, and expanded size are checked.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "password": {
                        "type": "string",
                        "description": "Archive password (if needed)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/password-protect-zip/run": {
      "post": {
        "operationId": "password_protect_zip",
        "summary": "Password protect ZIP",
        "description": "AES-256 encrypted ZIP. Filenames remain visible; some built-in extractors do not support AES ZIP.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "password": {
                        "type": "string",
                        "description": "Archive password",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/create-tar/run": {
      "post": {
        "operationId": "create_tar",
        "summary": "Create tar",
        "description": "Bundle paths safely.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/split-file/run": {
      "post": {
        "operationId": "split_file",
        "summary": "Split file",
        "description": "Chunk sizes, filenames and reconstruction instructions.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mb": {
                        "type": "number",
                        "description": "Part size (MB)",
                        "default": 10.0
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/join-files/run": {
      "post": {
        "operationId": "join_files",
        "summary": "Join files",
        "description": "Joins raw parts in filename order, not separate PDF/video documents.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Output filename",
                        "default": "joined-file.bin"
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/bulk-rename/run": {
      "post": {
        "operationId": "bulk_rename",
        "summary": "Bulk rename",
        "description": "Preview naming rules and collisions.",
        "tags": [
          "archive-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "prefix": {
                        "type": "string",
                        "description": "Filename prefix",
                        "default": "file-"
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/powerpoint-to-pdf/run": {
      "post": {
        "operationId": "powerpoint_to_pdf",
        "summary": "Powerpoint to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Rendered locally with LibreOffice. Font substitutions can change pagination. Files with external links or macros are rejected.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/excel-to-pdf/run": {
      "post": {
        "operationId": "excel_to_pdf",
        "summary": "Excel to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Rendered locally with LibreOffice. Font substitutions can change pagination. Files with external links or macros are rejected.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/text-to-pdf/run": {
      "post": {
        "operationId": "text_to_pdf",
        "summary": "Text to PDF",
        "description": "Basic Latin text PDF with selectable text. Unsupported characters produce an error instead of silently disappearing.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/rtf-to-pdf/run": {
      "post": {
        "operationId": "rtf_to_pdf",
        "summary": "Rtf to PDF",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Rendered locally with LibreOffice. Font substitutions can change pagination. Files with external links or macros are rejected.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/image-to-text/run": {
      "post": {
        "operationId": "image_to_text",
        "summary": "Image to text",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Local Tesseract OCR. English is installed. Check recognised text for errors.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "language": {
                        "type": "string",
                        "description": "OCR language",
                        "default": "eng",
                        "enum": [
                          "eng"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/uppercase/run": {
      "post": {
        "operationId": "uppercase",
        "summary": "Uppercase",
        "description": "Convert text to UPPERCASE as you type.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/lowercase/run": {
      "post": {
        "operationId": "lowercase",
        "summary": "Lowercase",
        "description": "Convert text to lowercase as you type.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/title-case/run": {
      "post": {
        "operationId": "title_case",
        "summary": "Title case",
        "description": "Capitalize the first letter of every word.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sentence-case/run": {
      "post": {
        "operationId": "sentence_case",
        "summary": "Sentence case",
        "description": "Capitalize the start of each sentence.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/camel-case/run": {
      "post": {
        "operationId": "camel_case",
        "summary": "Camel case",
        "description": "Turn words into a camelCase identifier.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pascal-case/run": {
      "post": {
        "operationId": "pascal_case",
        "summary": "Pascal case",
        "description": "Turn words into a PascalCase identifier.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/snake-case/run": {
      "post": {
        "operationId": "snake_case",
        "summary": "Snake case",
        "description": "Join lowercase words_with_underscores.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/kebab-case/run": {
      "post": {
        "operationId": "kebab_case",
        "summary": "Kebab case",
        "description": "Join lowercase words-with-hyphens.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/dot-case/run": {
      "post": {
        "operationId": "dot_case",
        "summary": "Dot case",
        "description": "Join lowercase words.with.dots.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/alternating-case/run": {
      "post": {
        "operationId": "alternating_case",
        "summary": "Alternating case",
        "description": "Alternate lowercase and UPPERCASE letters.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/invert-case/run": {
      "post": {
        "operationId": "invert_case",
        "summary": "Invert case",
        "description": "Swap uppercase letters to lowercase and back.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/character-counter/run": {
      "post": {
        "operationId": "character_counter",
        "summary": "Character counter",
        "description": "Count visible characters, words, lines and UTF-8 bytes.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sentence-counter/run": {
      "post": {
        "operationId": "sentence_counter",
        "summary": "Sentence counter",
        "description": "Count sentences using English text segmentation.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/line-counter/run": {
      "post": {
        "operationId": "line_counter",
        "summary": "Line counter",
        "description": "Count all lines and nonempty lines in your text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/paragraph-counter/run": {
      "post": {
        "operationId": "paragraph_counter",
        "summary": "Paragraph counter",
        "description": "Count paragraphs separated by blank lines.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/reading-time/run": {
      "post": {
        "operationId": "reading_time",
        "summary": "Reading time",
        "description": "An estimate based on English word segmentation and your selected pace. Pauses, technical material and delivery style can change the actual time.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "wpm": {
                        "type": "number",
                        "description": "Reading words per minute",
                        "default": 200.0,
                        "minimum": 1,
                        "maximum": 1000,
                        "multipleOf": 1
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/speaking-time/run": {
      "post": {
        "operationId": "speaking_time",
        "summary": "Speaking time",
        "description": "An estimate based on English word segmentation and your selected pace. Pauses, technical material and delivery style can change the actual time.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "wpm": {
                        "type": "number",
                        "description": "Speaking words per minute",
                        "default": 150.0,
                        "minimum": 1,
                        "maximum": 1000,
                        "multipleOf": 1
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/duplicate-word-finder/run": {
      "post": {
        "operationId": "duplicate_word_finder",
        "summary": "Duplicate word finder",
        "description": "List repeated words and how often they appear.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/trim-text/run": {
      "post": {
        "operationId": "trim_text",
        "summary": "Trim text",
        "description": "Remove spaces from the start and end of each line.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-formatting/run": {
      "post": {
        "operationId": "remove_formatting",
        "summary": "Remove formatting",
        "description": "Copy pasted content as plain text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-diacritics/run": {
      "post": {
        "operationId": "remove_diacritics",
        "summary": "Remove diacritics",
        "description": "Remove combining accents from text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-punctuation/run": {
      "post": {
        "operationId": "remove_punctuation",
        "summary": "Remove punctuation",
        "description": "Remove Unicode punctuation from your text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/add-line-numbers/run": {
      "post": {
        "operationId": "add_line_numbers",
        "summary": "Add line numbers",
        "description": "Number each line, starting at 1.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-line-numbers/run": {
      "post": {
        "operationId": "remove_line_numbers",
        "summary": "Remove line numbers",
        "description": "Remove common numeric prefixes from lines.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/comma-separated-list/run": {
      "post": {
        "operationId": "comma_separated_list",
        "summary": "Comma separated list",
        "description": "Turn nonempty lines into a comma-separated list.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/tabs-to-spaces/run": {
      "post": {
        "operationId": "tabs_to_spaces",
        "summary": "Tabs to spaces",
        "description": "Replace each tab with a fixed number of spaces.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "Spaces per tab",
                        "default": 4.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/wrap-text/run": {
      "post": {
        "operationId": "wrap_text",
        "summary": "Wrap text",
        "description": "Wrap text at word boundaries.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "Maximum line width",
                        "default": 80.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/indent-text/run": {
      "post": {
        "operationId": "indent_text",
        "summary": "Indent text",
        "description": "Add spaces at the start of every line.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "Indent spaces",
                        "default": 2.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/upside-down-text/run": {
      "post": {
        "operationId": "upside_down_text",
        "summary": "Upside down text",
        "description": "Flip text into an upside-down Unicode style.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/bold-text/run": {
      "post": {
        "operationId": "bold_text",
        "summary": "Bold text",
        "description": "Unicode styling changes the characters themselves. Font and screen-reader support varies.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/italic-text/run": {
      "post": {
        "operationId": "italic_text",
        "summary": "Italic text",
        "description": "Unicode styling changes the characters themselves. Font and screen-reader support varies.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/strikethrough-text/run": {
      "post": {
        "operationId": "strikethrough_text",
        "summary": "Strikethrough text",
        "description": "Add a strikethrough mark to visible characters.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/underline-text/run": {
      "post": {
        "operationId": "underline_text",
        "summary": "Underline text",
        "description": "Add combining underlines to non-whitespace characters.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/small-text/run": {
      "post": {
        "operationId": "small_text",
        "summary": "Small text",
        "description": "Unsupported letters are retained; Unicode has no complete superscript or subscript alphabet.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/superscript/run": {
      "post": {
        "operationId": "superscript",
        "summary": "Superscript",
        "description": "Unsupported letters are retained; Unicode has no complete superscript or subscript alphabet.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/subscript/run": {
      "post": {
        "operationId": "subscript",
        "summary": "Subscript",
        "description": "Unsupported letters are retained; Unicode has no complete superscript or subscript alphabet.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/bubble-text/run": {
      "post": {
        "operationId": "bubble_text",
        "summary": "Bubble text",
        "description": "Unicode styling changes the characters themselves. Font and screen-reader support varies.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/wide-text/run": {
      "post": {
        "operationId": "wide_text",
        "summary": "Wide text",
        "description": "Convert basic Latin characters to fullwidth Unicode.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/lorem-ipsum/run": {
      "post": {
        "operationId": "lorem_ipsum",
        "summary": "Lorem ipsum",
        "description": "Generate placeholder paragraphs for layout testing.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "Paragraphs",
                        "default": 3.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/number-to-words/run": {
      "post": {
        "operationId": "number_to_words",
        "summary": "Number to words",
        "description": "English integers within the safe precision range.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ip-lookup/run": {
      "post": {
        "operationId": "ip_lookup",
        "summary": "IP lookup",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/dns-lookup/run": {
      "post": {
        "operationId": "dns_lookup",
        "summary": "DNS lookup",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "record": {
                        "type": "string",
                        "description": "Record type",
                        "default": "A",
                        "enum": [
                          "A",
                          "AAAA",
                          "MX",
                          "TXT",
                          "NS",
                          "CNAME",
                          "SOA"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/reverse-dns/run": {
      "post": {
        "operationId": "reverse_dns",
        "summary": "Reverse DNS",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/whois-lookup/run": {
      "post": {
        "operationId": "whois_lookup",
        "summary": "Whois lookup",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/subnet-calculator/run": {
      "post": {
        "operationId": "subnet_calculator",
        "summary": "Subnet calculator",
        "description": "IPv4/IPv6 ranges, prefix length and usable-address conventions.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/cidr-to-range/run": {
      "post": {
        "operationId": "cidr_to_range",
        "summary": "CIDR to range",
        "description": "First/last addresses, count and IPv6 support without allocating massive address lists.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ip-range-to-cidr/run": {
      "post": {
        "operationId": "ip_range_to_cidr",
        "summary": "IP range to CIDR",
        "description": "Minimal exact covering blocks.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "end": {
                        "type": "string",
                        "description": "Ending IP address",
                        "default": "192.168.1.255"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ipv6-compress/run": {
      "post": {
        "operationId": "ipv6_compress",
        "summary": "Ipv6 compress",
        "description": "Compress/expand canonical IPv6 with round-trip checks.",
        "tags": [
          "network-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/http-status-checker/run": {
      "post": {
        "operationId": "http_status_checker",
        "summary": "HTTP status checker",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/redirect-checker/run": {
      "post": {
        "operationId": "redirect_checker",
        "summary": "Redirect checker",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ssl-checker/run": {
      "post": {
        "operationId": "ssl_checker",
        "summary": "SSL checker",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/robots-txt-tester/run": {
      "post": {
        "operationId": "robots_txt_tester",
        "summary": "Robots txt tester",
        "description": "Paste robots.txt content; this tool does not fetch or change the remote file.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "URL to test",
                        "default": "https://happytails.ai/path"
                      },
                      "agent": {
                        "type": "string",
                        "description": "Crawler user agent",
                        "default": "Googlebot"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/meta-tag-generator/run": {
      "post": {
        "operationId": "meta_tag_generator",
        "summary": "Meta tag generator",
        "description": "Escaped title, description, robots and social metadata.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "Page title",
                        "default": ""
                      },
                      "description": {
                        "type": "string",
                        "description": "Description",
                        "default": ""
                      },
                      "index": {
                        "type": "boolean",
                        "description": "Allow indexing",
                        "default": true
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/schema-generator/run": {
      "post": {
        "operationId": "schema_generator",
        "summary": "Schema generator",
        "description": "Supply Schema.org properties as JSON. This formats JSON-LD; it does not guarantee rich-result eligibility.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/hreflang-generator/run": {
      "post": {
        "operationId": "hreflang_generator",
        "summary": "Hreflang generator",
        "description": "Language-region validation, reciprocal alternate sets and x-default.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/security-headers/run": {
      "post": {
        "operationId": "security_headers",
        "summary": "Security headers",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "web-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/spf-checker/run": {
      "post": {
        "operationId": "spf_checker",
        "summary": "SPF checker",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "email-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/dkim-checker/run": {
      "post": {
        "operationId": "dkim_checker",
        "summary": "DKIM checker",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "email-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "selector": {
                        "type": "string",
                        "description": "DKIM selector",
                        "default": "default"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/dmarc-checker/run": {
      "post": {
        "operationId": "dmarc_checker",
        "summary": "DMARC checker",
        "description": "Uses the local diagnostic server to contact the supplied public host or DNS/RDAP provider. Only public internet addresses are permitted; requests time out and redirects are bounded.",
        "tags": [
          "email-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/email-header-analyzer/run": {
      "post": {
        "operationId": "email_header_analyzer",
        "summary": "Email header analyzer",
        "description": "Local parsing of hops and authentication results.",
        "tags": [
          "email-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/email-signature-generator/run": {
      "post": {
        "operationId": "email_signature_generator",
        "summary": "Email signature generator",
        "description": "Create a simple HTML email signature with your contact details.",
        "tags": [
          "email-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Name",
                        "default": ""
                      },
                      "role": {
                        "type": "string",
                        "description": "Role",
                        "default": ""
                      },
                      "company": {
                        "type": "string",
                        "description": "Company",
                        "default": ""
                      },
                      "email": {
                        "type": "string",
                        "description": "Email",
                        "default": ""
                      },
                      "phone": {
                        "type": "string",
                        "description": "Phone",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/eml-to-pdf/run": {
      "post": {
        "operationId": "eml_to_pdf",
        "summary": "Eml to PDF",
        "description": "Exports plain-text message content; does not execute HTML or embed attachments.",
        "tags": [
          "email-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/eml-viewer/run": {
      "post": {
        "operationId": "eml_viewer",
        "summary": "Eml viewer",
        "description": "Reads the message locally. HTML is shown as source; remote images and scripts are never loaded.",
        "tags": [
          "email-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/compare-csv/run": {
      "post": {
        "operationId": "compare_csv",
        "summary": "Compare CSV",
        "description": "Keyed row diff versus position diff.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "other": {
                        "type": "string",
                        "description": "Second CSV",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/merge-csv/run": {
      "post": {
        "operationId": "merge_csv",
        "summary": "Merge CSV",
        "description": "Append with header alignment.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-join/run": {
      "post": {
        "operationId": "csv_join",
        "summary": "CSV join",
        "description": "Inner/left/full joins on explicit keys.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "key": {
                        "type": "string",
                        "description": "Join column",
                        "default": "id"
                      },
                      "type": {
                        "type": "string",
                        "description": "Join",
                        "default": "Inner",
                        "enum": [
                          "Inner",
                          "Left"
                        ]
                      },
                      "other": {
                        "type": "string",
                        "description": "Second CSV",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/csv-pivot/run": {
      "post": {
        "operationId": "csv_pivot",
        "summary": "CSV pivot",
        "description": "Row/column groups, counts/sums, blank handling and export.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "group": {
                        "type": "string",
                        "description": "Group by column",
                        "default": "category"
                      },
                      "value": {
                        "type": "string",
                        "description": "Sum column",
                        "default": "amount"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/excel-to-html/run": {
      "post": {
        "operationId": "excel_to_html",
        "summary": "Excel to HTML",
        "description": "Uses stored cell values; formulas are not recalculated. Check dates, identifiers and cached formula results. CSV/JSON export reads one worksheet.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sheet": {
                        "type": "string",
                        "description": "Worksheet name (blank = first)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/xlsx-viewer/run": {
      "post": {
        "operationId": "xlsx_viewer",
        "summary": "XLSX viewer",
        "description": "Uses stored cell values; formulas are not recalculated. Check dates, identifiers and cached formula results. CSV/JSON export reads one worksheet.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sheet": {
                        "type": "string",
                        "description": "Worksheet name (blank = first)",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ods-to-xlsx/run": {
      "post": {
        "operationId": "ods_to_xlsx",
        "summary": "Ods to XLSX",
        "description": "Uses stored cell values; formulas are not recalculated. Check dates, identifiers and cached formula results. CSV/JSON export reads one worksheet.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/split-excel/run": {
      "post": {
        "operationId": "split_excel",
        "summary": "Split excel",
        "description": "Uses stored cell values; formulas are not recalculated. Check dates, identifiers and cached formula results. CSV/JSON export reads one worksheet.",
        "tags": [
          "spreadsheet-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-tsv/run": {
      "post": {
        "operationId": "json_to_tsv",
        "summary": "JSON to TSV",
        "description": "Convert JSON to TSV.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-typescript/run": {
      "post": {
        "operationId": "json_to_typescript",
        "summary": "JSON to typescript",
        "description": "Infer types from samples with optional properties and unions.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-go/run": {
      "post": {
        "operationId": "json_to_go",
        "summary": "JSON to go",
        "description": "Infers one sample; nested collections use generic types. Review missing/null fields. Java fields may need JSON mapping annotations.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-python/run": {
      "post": {
        "operationId": "json_to_python",
        "summary": "JSON to python",
        "description": "Infers one sample. Review optional fields and nested schemas.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-java/run": {
      "post": {
        "operationId": "json_to_java",
        "summary": "JSON to java",
        "description": "Infers one sample; nested collections use generic types. Review missing/null fields. Java fields may need JSON mapping annotations.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-schema/run": {
      "post": {
        "operationId": "json_to_schema",
        "summary": "JSON to schema",
        "description": "Choose schema dialect.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-schema-validator/run": {
      "post": {
        "operationId": "json_schema_validator",
        "summary": "JSON schema validator",
        "description": "Dialect-aware validation with exact instance paths and local reference resolution.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "schema": {
                        "type": "string",
                        "description": "JSON Schema (draft 7)",
                        "default": "{\"type\":\"object\"}"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/jsonpath-tester/run": {
      "post": {
        "operationId": "jsonpath_tester",
        "summary": "Jsonpath tester",
        "description": "Expression evaluation is disabled. Use property, index and wildcard selectors.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "path": {
                        "type": "string",
                        "description": "JSONPath",
                        "default": "$.items[*]"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-sql/run": {
      "post": {
        "operationId": "json_to_sql",
        "summary": "JSON to SQL",
        "description": "ANSI-style quoted identifiers and string values. Review column types before executing SQL.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "delimiter": {
                        "type": "string",
                        "description": "CSV separator",
                        "default": ",",
                        "enum": [
                          ",",
                          ";",
                          "\t"
                        ]
                      },
                      "table": {
                        "type": "string",
                        "description": "SQL table",
                        "default": "data"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/jsonl-to-json/run": {
      "post": {
        "operationId": "jsonl_to_json",
        "summary": "Jsonl to JSON",
        "description": "Convert JSON Lines into a JSON array.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/json-to-html/run": {
      "post": {
        "operationId": "json_to_html",
        "summary": "JSON to HTML",
        "description": "Convert JSON to HTML.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/yaml-formatter/run": {
      "post": {
        "operationId": "yaml_formatter",
        "summary": "YAML formatter",
        "description": "Pin YAML version.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/yaml-validator/run": {
      "post": {
        "operationId": "yaml_validator",
        "summary": "YAML validator",
        "description": "Line/column errors, duplicate-key policy and safe parsing without arbitrary constructors.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/xml-validator/run": {
      "post": {
        "operationId": "xml_validator",
        "summary": "XML validator",
        "description": "Well-formedness validation.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/cron-parser/run": {
      "post": {
        "operationId": "cron_parser",
        "summary": "Cron parser",
        "description": "Cron dialect and time-zone selection.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "zone": {
                        "type": "string",
                        "description": "IANA time zone",
                        "default": "UTC"
                      },
                      "start": {
                        "type": "string",
                        "description": "Start ISO date (blank = now)",
                        "default": ""
                      },
                      "n": {
                        "type": "number",
                        "description": "Next occurrences",
                        "default": 10.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/chmod-calculator/run": {
      "post": {
        "operationId": "chmod_calculator",
        "summary": "Chmod calculator",
        "description": "Numeric and symbolic Unix permission mapping.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/curl-to-code/run": {
      "post": {
        "operationId": "curl_to_code",
        "summary": "Curl to code",
        "description": "Generates code without sending a request. Supports method, headers and literal body; unsupported shell features are rejected.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "language": {
                        "type": "string",
                        "description": "Language",
                        "default": "JavaScript",
                        "enum": [
                          "JavaScript",
                          "Python"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/html-minifier/run": {
      "post": {
        "operationId": "html_minifier",
        "summary": "HTML minifier",
        "description": "Conservatively collapses markup whitespace without running scripts. Verify visual layout after minification.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/css-minifier/run": {
      "post": {
        "operationId": "css_minifier",
        "summary": "CSS minifier",
        "description": "Pinned parser with source-size comparison and downloadable output.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/javascript-minifier/run": {
      "post": {
        "operationId": "javascript_minifier",
        "summary": "Javascript minifier",
        "description": "Minifies without running the source code. Always test the resulting program.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/hmac-generator/run": {
      "post": {
        "operationId": "hmac_generator",
        "summary": "HMAC generator",
        "description": "HMAC-SHA-256. The secret stays in this tab.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "key": {
                        "type": "string",
                        "description": "HMAC secret",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/bcrypt-generator/run": {
      "post": {
        "operationId": "bcrypt_generator",
        "summary": "Bcrypt generator",
        "description": "A new random salt is generated for each hash. Input is limited to 72 UTF-8 bytes by bcrypt.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "rounds": {
                        "type": "number",
                        "description": "Cost factor",
                        "default": 10.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/rsa-key-generator/run": {
      "post": {
        "operationId": "rsa_key_generator",
        "summary": "RSA key generator",
        "description": "2048-bit RSA-OAEP/SHA-256. Private key download is unencrypted; protect it.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/url-to-punycode/run": {
      "post": {
        "operationId": "url_to_punycode",
        "summary": "URL to punycode",
        "description": "Unicode domain and ASCII conversion with IDNA version stated.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mock-data-generator/run": {
      "post": {
        "operationId": "mock_data_generator",
        "summary": "Mock data generator",
        "description": "Synthetic demo records; emails use happytails.ai.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "n": {
                        "type": "number",
                        "description": "Records",
                        "default": 10.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/token-counter/run": {
      "post": {
        "operationId": "token_counter",
        "summary": "Token counter",
        "description": "Explicit model/tokenizer version.",
        "tags": [
          "developer-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "model": {
                        "type": "string",
                        "description": "Tokenizer model",
                        "default": "gpt-4o",
                        "enum": [
                          "gpt-4o",
                          "gpt-4",
                          "gpt-3.5-turbo"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/css-box-shadow/run": {
      "post": {
        "operationId": "css_box_shadow",
        "summary": "CSS box shadow",
        "description": "Visual controls and accessible code output.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "x": {
                        "type": "number",
                        "description": "Horizontal",
                        "default": 0.0
                      },
                      "y": {
                        "type": "number",
                        "description": "Vertical",
                        "default": 4.0
                      },
                      "blur": {
                        "type": "number",
                        "description": "Blur",
                        "default": 12.0
                      },
                      "spread": {
                        "type": "number",
                        "description": "Spread",
                        "default": 0.0
                      },
                      "color": {
                        "type": "string",
                        "description": "Color",
                        "default": "#333333"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/css-flexbox/run": {
      "post": {
        "operationId": "css_flexbox",
        "summary": "CSS flexbox",
        "description": "Responsive interactive preview with generated CSS and minimal HTML.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "direction": {
                        "type": "string",
                        "description": "Direction",
                        "default": "row",
                        "enum": [
                          "row",
                          "column",
                          "row-reverse",
                          "column-reverse"
                        ]
                      },
                      "justify": {
                        "type": "string",
                        "description": "Justify",
                        "default": "flex-start",
                        "enum": [
                          "flex-start",
                          "center",
                          "space-between",
                          "space-around",
                          "flex-end"
                        ]
                      },
                      "align": {
                        "type": "string",
                        "description": "Align",
                        "default": "stretch",
                        "enum": [
                          "stretch",
                          "center",
                          "flex-start",
                          "flex-end"
                        ]
                      },
                      "wrap": {
                        "type": "string",
                        "description": "Wrap",
                        "default": "wrap",
                        "enum": [
                          "wrap",
                          "nowrap"
                        ]
                      },
                      "gap": {
                        "type": "number",
                        "description": "Gap (px)",
                        "default": 16.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/css-grid/run": {
      "post": {
        "operationId": "css_grid",
        "summary": "CSS grid",
        "description": "Rows, columns, gaps and placements.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "columns": {
                        "type": "number",
                        "description": "Columns",
                        "default": 3.0
                      },
                      "gap": {
                        "type": "number",
                        "description": "Gap (px)",
                        "default": 16.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/svg-optimizer/run": {
      "post": {
        "operationId": "svg_optimizer",
        "summary": "SVG optimizer",
        "description": "Optimizes SVG source. This is not an SVG sanitizer; inspect external links and scripts before embedding untrusted markup.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/invoice-generator/run": {
      "post": {
        "operationId": "invoice_generator",
        "summary": "Invoice generator",
        "description": "Basic line-item PDF, with tax added after subtotal and amounts rounded to cents. Review local invoice requirements. Standard font supports basic Latin text.",
        "tags": [
          "business-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "string",
                        "description": "Document number",
                        "default": "INV-001"
                      },
                      "from": {
                        "type": "string",
                        "description": "Your business",
                        "default": ""
                      },
                      "to": {
                        "type": "string",
                        "description": "Customer",
                        "default": ""
                      },
                      "date": {
                        "type": "string",
                        "description": "Date",
                        "default": "2026-09-28"
                      },
                      "currency": {
                        "type": "string",
                        "description": "Currency",
                        "default": "EUR"
                      },
                      "tax": {
                        "type": "number",
                        "description": "Tax (%)",
                        "default": 0.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/quote-generator/run": {
      "post": {
        "operationId": "quote_generator",
        "summary": "Quote generator",
        "description": "Basic line-item PDF, with tax added after subtotal and amounts rounded to cents. Review local invoice requirements. Standard font supports basic Latin text.",
        "tags": [
          "business-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "string",
                        "description": "Document number",
                        "default": "INV-001"
                      },
                      "from": {
                        "type": "string",
                        "description": "Your business",
                        "default": ""
                      },
                      "to": {
                        "type": "string",
                        "description": "Customer",
                        "default": ""
                      },
                      "date": {
                        "type": "string",
                        "description": "Date",
                        "default": "2026-09-28"
                      },
                      "currency": {
                        "type": "string",
                        "description": "Currency",
                        "default": "EUR"
                      },
                      "tax": {
                        "type": "number",
                        "description": "Tax (%)",
                        "default": 0.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/meeting-cost/run": {
      "post": {
        "operationId": "meeting_cost",
        "summary": "Meeting cost",
        "description": "Estimate a meeting’s total staff cost.",
        "tags": [
          "business-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "people": {
                        "type": "number",
                        "description": "Attendees",
                        "default": 5.0
                      },
                      "rate": {
                        "type": "number",
                        "description": "Hourly cost per person",
                        "default": 40.0
                      },
                      "minutes": {
                        "type": "number",
                        "description": "Minutes",
                        "default": 30.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/hourly-to-salary/run": {
      "post": {
        "operationId": "hourly_to_salary",
        "summary": "Hourly to salary",
        "description": "Gross pay before deductions.",
        "tags": [
          "business-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "rate": {
                        "type": "number",
                        "description": "Hourly pay",
                        "default": 25.0
                      },
                      "hours": {
                        "type": "number",
                        "description": "Hours per week",
                        "default": 40.0
                      },
                      "weeks": {
                        "type": "number",
                        "description": "Paid weeks per year",
                        "default": 52.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/compound-interest/run": {
      "post": {
        "operationId": "compound_interest",
        "summary": "Compound interest",
        "description": "Calculate growth from regular compounding at a fixed rate.",
        "tags": [
          "finance-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "principal": {
                        "type": "number",
                        "description": "Starting amount",
                        "default": 1000.0
                      },
                      "rate": {
                        "type": "number",
                        "description": "Nominal annual rate (%)",
                        "default": 5.0
                      },
                      "years": {
                        "type": "number",
                        "description": "Years",
                        "default": 10.0
                      },
                      "n": {
                        "type": "number",
                        "description": "Compounds per year",
                        "default": 12.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/loan-payment/run": {
      "post": {
        "operationId": "loan_payment",
        "summary": "Loan payment",
        "description": "Fixed nominal rate, monthly payments. Excludes fees, taxes and insurance.",
        "tags": [
          "finance-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "principal": {
                        "type": "number",
                        "description": "Principal",
                        "default": 200000.0
                      },
                      "rate": {
                        "type": "number",
                        "description": "Annual interest (%)",
                        "default": 5.0
                      },
                      "years": {
                        "type": "number",
                        "description": "Term in years",
                        "default": 30.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/mortgage-payment/run": {
      "post": {
        "operationId": "mortgage_payment",
        "summary": "Mortgage payment",
        "description": "Fixed nominal rate, monthly payments. Excludes fees, taxes and insurance.",
        "tags": [
          "finance-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "principal": {
                        "type": "number",
                        "description": "Principal",
                        "default": 200000.0
                      },
                      "rate": {
                        "type": "number",
                        "description": "Annual interest (%)",
                        "default": 5.0
                      },
                      "years": {
                        "type": "number",
                        "description": "Term in years",
                        "default": 30.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/savings-goal/run": {
      "post": {
        "operationId": "savings_goal",
        "summary": "Savings goal",
        "description": "Estimate the monthly contribution needed to reach a savings goal.",
        "tags": [
          "finance-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "goal": {
                        "type": "number",
                        "description": "Target balance",
                        "default": 10000.0
                      },
                      "start": {
                        "type": "number",
                        "description": "Starting balance",
                        "default": 1000.0
                      },
                      "months": {
                        "type": "number",
                        "description": "Months",
                        "default": 24.0
                      },
                      "rate": {
                        "type": "number",
                        "description": "Annual nominal rate (%)",
                        "default": 4.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/currency-converter/run": {
      "post": {
        "operationId": "currency_converter",
        "summary": "Currency converter",
        "description": "Fetches dated reference exchange rates from Frankfurter via the local server. Not a live trading quote; fees are excluded.",
        "tags": [
          "finance-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "source": {
                        "type": "string",
                        "description": "From currency",
                        "default": "EUR"
                      },
                      "target": {
                        "type": "string",
                        "description": "To currency",
                        "default": "USD"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/grade-calculator/run": {
      "post": {
        "operationId": "grade_calculator",
        "summary": "Grade calculator",
        "description": "One score,weight pair per line. For GPA use numeric grade points and course credits.",
        "tags": [
          "education-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/gpa-calculator/run": {
      "post": {
        "operationId": "gpa_calculator",
        "summary": "Gpa calculator",
        "description": "One score,weight pair per line. For GPA use numeric grade points and course credits.",
        "tags": [
          "education-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/final-grade/run": {
      "post": {
        "operationId": "final_grade",
        "summary": "Final grade",
        "description": "Find the final-exam score needed to reach a target course grade.",
        "tags": [
          "education-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "current": {
                        "type": "number",
                        "description": "Current grade (%)",
                        "default": 80.0
                      },
                      "target": {
                        "type": "number",
                        "description": "Target grade (%)",
                        "default": 85.0
                      },
                      "weight": {
                        "type": "number",
                        "description": "Final exam weight (%)",
                        "default": 30.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/citation-generator/run": {
      "post": {
        "operationId": "citation_generator",
        "summary": "Citation generator",
        "description": "Basic webpage reference formatting. Supply verified source metadata; this does not verify sources or cover every reference type.",
        "tags": [
          "education-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "style": {
                        "type": "string",
                        "description": "Style",
                        "default": "APA",
                        "enum": [
                          "APA",
                          "MLA",
                          "Chicago"
                        ]
                      },
                      "author": {
                        "type": "string",
                        "description": "Author",
                        "default": ""
                      },
                      "organization": {
                        "type": "string",
                        "description": "Organization (if no author)",
                        "default": ""
                      },
                      "date": {
                        "type": "string",
                        "description": "Publication date",
                        "default": ""
                      },
                      "title": {
                        "type": "string",
                        "description": "Page title",
                        "default": ""
                      },
                      "site": {
                        "type": "string",
                        "description": "Website name",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/coordinate-converter/run": {
      "post": {
        "operationId": "coordinate_converter",
        "summary": "Coordinate converter",
        "description": "Convert decimal latitude and longitude to degrees, minutes and seconds.",
        "tags": [
          "geo-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/gpx-to-kml/run": {
      "post": {
        "operationId": "gpx_to_kml",
        "summary": "GPX to KML",
        "description": "Converts GPX track geometry and elevation. GPX timestamps and extensions are not preserved.",
        "tags": [
          "geo-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/kml-to-geojson/run": {
      "post": {
        "operationId": "kml_to_geojson",
        "summary": "KML to geojson",
        "description": "Convert KML features to GeoJSON.",
        "tags": [
          "geo-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/distance-between-coordinates/run": {
      "post": {
        "operationId": "distance_between_coordinates",
        "summary": "Distance between coordinates",
        "description": "Geodesic surface distance with units and method.",
        "tags": [
          "geo-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "end": {
                        "type": "string",
                        "description": "Destination latitude,longitude",
                        "default": "48.8566,2.3522"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/resistor-color-code/run": {
      "post": {
        "operationId": "resistor_color_code",
        "summary": "Resistor color code",
        "description": "4/5/6-band modes and tolerance.",
        "tags": [
          "maker-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "a": {
                        "type": "string",
                        "description": "First band",
                        "default": "brown",
                        "enum": [
                          "brown",
                          "red",
                          "orange",
                          "yellow",
                          "green",
                          "blue",
                          "violet",
                          "gray",
                          "white"
                        ]
                      },
                      "b": {
                        "type": "string",
                        "description": "Second band",
                        "default": "black",
                        "enum": [
                          "black",
                          "brown",
                          "red",
                          "orange",
                          "yellow",
                          "green",
                          "blue",
                          "violet",
                          "gray",
                          "white"
                        ]
                      },
                      "multiplier": {
                        "type": "string",
                        "description": "Multiplier",
                        "default": "black",
                        "enum": [
                          "black",
                          "brown",
                          "red",
                          "orange",
                          "yellow",
                          "green",
                          "blue"
                        ]
                      },
                      "tolerance": {
                        "type": "string",
                        "description": "Tolerance",
                        "default": "±5% (gold)",
                        "enum": [
                          "±5% (gold)",
                          "±10% (silver)",
                          "±1% (brown)",
                          "±2% (red)"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ohms-law/run": {
      "post": {
        "operationId": "ohms_law",
        "summary": "Ohms law",
        "description": "Calculate current and power from voltage and resistance.",
        "tags": [
          "maker-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "volts": {
                        "type": "number",
                        "description": "Voltage (V)",
                        "default": 12.0
                      },
                      "ohms": {
                        "type": "number",
                        "description": "Resistance (Ω)",
                        "default": 6.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/dpi-calculator/run": {
      "post": {
        "operationId": "dpi_calculator",
        "summary": "DPI calculator",
        "description": "Calculate pixel density from pixel count and physical size.",
        "tags": [
          "maker-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pixels": {
                        "type": "number",
                        "description": "Pixels",
                        "default": 3000.0
                      },
                      "inches": {
                        "type": "number",
                        "description": "Inches",
                        "default": 10.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/audio-to-text/run": {
      "post": {
        "operationId": "audio_to_text",
        "summary": "Audio to text",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Local Whisper tiny. Clips up to five minutes; review words and timing.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/video-to-text/run": {
      "post": {
        "operationId": "video_to_text",
        "summary": "Video to text",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Local Whisper tiny. Clips up to five minutes; review words and timing.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/voice-to-text/run": {
      "post": {
        "operationId": "voice_to_text",
        "summary": "Voice to text",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Local Whisper tiny. Clips up to five minutes; review words and timing. Upload a voice recording; direct microphone capture is not yet included.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/transcript-editor/run": {
      "post": {
        "operationId": "transcript_editor",
        "summary": "Transcript editor",
        "description": "Edit the transcript directly above, then copy or download your changes.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/speaker-diarization/run": {
      "post": {
        "operationId": "speaker_diarization",
        "summary": "Speaker diarization",
        "description": "Group non-overlapping voices using local ECAPA speaker embeddings. Up to one minute. Returns speaker labels and approximate 250 ms timestamps. It does not identify people or separate overlapping speech. Review short turns and noisy recordings.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "speakers": {
                        "type": "number",
                        "description": "Number of speakers (0 to estimate)",
                        "default": 0.0,
                        "minimum": 0,
                        "maximum": 6,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/audio-translator/run": {
      "post": {
        "operationId": "audio_translator",
        "summary": "Audio translator",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Local Whisper tiny. Clips up to five minutes; review words and timing.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "language": {
                        "type": "string",
                        "description": "Translate to",
                        "default": "English",
                        "enum": [
                          "English",
                          "Spanish",
                          "French",
                          "German",
                          "Portuguese"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/transcript-summarizer/run": {
      "post": {
        "operationId": "transcript_summarizer",
        "summary": "Transcript summarizer",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. At most 16,000 source characters. Generated suggestions require your review.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/meeting-notes-generator/run": {
      "post": {
        "operationId": "meeting_notes_generator",
        "summary": "Meeting notes generator",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. At most 16,000 source characters. Generated suggestions require your review.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/podcast-chapter-generator/run": {
      "post": {
        "operationId": "podcast_chapter_generator",
        "summary": "Podcast chapter generator",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. At most 16,000 source characters. Generated suggestions require your review.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/transcript-search/run": {
      "post": {
        "operationId": "transcript_search",
        "summary": "Transcript search",
        "description": "Search locally imported timestamped transcripts by phrase and semantic similarity.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "query": {
                        "type": "string",
                        "description": "Find phrase",
                        "default": ""
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pdf-to-audio/run": {
      "post": {
        "operationId": "pdf_to_audio",
        "summary": "PDF to audio",
        "description": "Processed locally on this website’s server without an external conversion API. Uses the installed local macOS voice. Up to 6,000 extracted characters. Scans need OCR first. Linux needs a separate local voice engine.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "rate": {
                        "type": "number",
                        "description": "Reading speed (words per minute)",
                        "default": 170.0,
                        "minimum": 80,
                        "maximum": 300,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/voiceover-timing/run": {
      "post": {
        "operationId": "voiceover_timing",
        "summary": "Voiceover timing",
        "description": "Estimate the speaking pace needed for a target duration.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "pace": {
                        "type": "number",
                        "description": "Speaking words per minute",
                        "default": 150.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/video-dubbing/run": {
      "post": {
        "operationId": "video_dubbing",
        "summary": "Video dubbing",
        "description": "Translate speech and replace the audio using an installed local system voice. Up to 20 seconds and eight speech segments. Voice cloning, music preservation and lip sync are not included. Review words and timing. All processing uses this server.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "language": {
                        "type": "string",
                        "description": "Translation language",
                        "default": "Spanish",
                        "enum": [
                          "English",
                          "Spanish",
                          "French",
                          "Portuguese"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/voice-cloning/run": {
      "post": {
        "operationId": "voice_cloning",
        "summary": "Voice cloning",
        "description": "Create a short English speech sample from a voice you are permitted to use. Upload 3 to 15 seconds of clear speech and enter up to 160 characters. Local Chatterbox processing, built-in watermark, and no saved voice profile. Disclose synthetic audio. Review similarity and pronunciation; results may vary. Allow up to three minutes for this experimental local voice model.",
        "tags": [
          "speech-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "consent": {
                        "type": "boolean",
                        "description": "This is my own voice, or I have permission to synthesize it",
                        "default": false
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/auto-subtitles/run": {
      "post": {
        "operationId": "auto_subtitles",
        "summary": "Auto subtitles",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Local Whisper tiny. Clips up to five minutes; review words and timing.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/subtitle-translator/run": {
      "post": {
        "operationId": "subtitle_translator",
        "summary": "Subtitle translator",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Preserves cue timestamps. Up to 50 cues. Review translation and reading speed.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "language": {
                        "type": "string",
                        "description": "Translate to",
                        "default": "English",
                        "enum": [
                          "English",
                          "Spanish",
                          "French",
                          "German",
                          "Portuguese"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/subtitle-alignment/run": {
      "post": {
        "operationId": "subtitle_alignment",
        "summary": "Subtitle alignment",
        "description": "Local Whisper forced alignment. English, up to one minute and 5,000 transcript characters. Review word timing; singing and overlapping voices may align poorly.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "transcript": {
                        "type": "string",
                        "description": "Matching English transcript or lyrics",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/karaoke-subtitles/run": {
      "post": {
        "operationId": "karaoke_subtitles",
        "summary": "Karaoke subtitles",
        "description": "Local Whisper forced alignment. English, up to one minute and 5,000 transcript characters. Review word timing; singing and overlapping voices may align poorly.",
        "tags": [
          "subtitle-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "transcript": {
                        "type": "string",
                        "description": "Matching English transcript or lyrics",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-background-noise/run": {
      "post": {
        "operationId": "remove_background_noise",
        "summary": "Remove background noise",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Uses FFmpeg spectral noise reduction. Compare the exported audio for speech loss or artefacts.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "strength": {
                        "type": "number",
                        "description": "Noise reduction (decibels)",
                        "default": 12.0,
                        "minimum": 1,
                        "maximum": 40
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/vocal-remover/run": {
      "post": {
        "operationId": "vocal_remover",
        "summary": "Vocal remover",
        "description": "Separate an audio or video clip into vocal and instrumental WAV files using a local Demucs model. Up to 30 seconds and 20 MiB. Processing uses this server, without an external conversion service. Separation is approximate; review both stems.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-silence/run": {
      "post": {
        "operationId": "remove_silence",
        "summary": "Remove silence",
        "description": "Browser processing keeps files on this device. Choosing Local server sends files to this website’s own processor. Uses volume thresholds, not speech recognition. Quiet speech can be affected; listen to the result.",
        "tags": [
          "media-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "threshold": {
                        "type": "number",
                        "description": "Silence threshold (dB)",
                        "default": -40.0,
                        "minimum": -80,
                        "maximum": -10
                      },
                      "pause": {
                        "type": "number",
                        "description": "Minimum quiet gap to trim (seconds)",
                        "default": 0.5,
                        "minimum": 0.1,
                        "maximum": 5
                      },
                      "engine": {
                        "type": "string",
                        "description": "Processing location",
                        "default": "browser",
                        "enum": [
                          "browser",
                          "server"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/remove-object/run": {
      "post": {
        "operationId": "remove_object",
        "summary": "Remove object",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Fills a rectangular region using nearby pixels (OpenCV inpainting). Best for small marks on simple backgrounds, not large generative edits.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "x": {
                        "type": "number",
                        "description": "Mask left (pixels)",
                        "default": 10.0,
                        "minimum": 0,
                        "maximum": 16000,
                        "multipleOf": 1
                      },
                      "y": {
                        "type": "number",
                        "description": "Mask top (pixels)",
                        "default": 10.0,
                        "minimum": 0,
                        "maximum": 16000,
                        "multipleOf": 1
                      },
                      "width": {
                        "type": "number",
                        "description": "Mask width (pixels)",
                        "default": 30.0,
                        "minimum": 1,
                        "maximum": 4000,
                        "multipleOf": 1
                      },
                      "height": {
                        "type": "number",
                        "description": "Mask height (pixels)",
                        "default": 30.0,
                        "minimum": 1,
                        "maximum": 4000,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/photo-denoiser/run": {
      "post": {
        "operationId": "photo_denoiser",
        "summary": "Photo denoiser",
        "description": "Processed by the local, self-hosted engine. No third-party conversion service is used. Classical OpenCV denoising at the original size. No generative model or invented detail.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "strength": {
                        "type": "number",
                        "description": "Denoising strength",
                        "default": 7.0,
                        "minimum": 1,
                        "maximum": 20
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/restore-old-photo/run": {
      "post": {
        "operationId": "restore_old_photo",
        "summary": "Restore old photo",
        "description": "Processed locally on this website’s server without an external conversion API. Classical denoising and optional contrast correction. Does not reconstruct faces, colourise, or remove large scratches.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "strength": {
                        "type": "number",
                        "description": "Denoising strength",
                        "default": 7.0,
                        "minimum": 1,
                        "maximum": 20
                      },
                      "contrast": {
                        "type": "boolean",
                        "description": "Improve tonal contrast",
                        "default": true
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/product-photo-background/run": {
      "post": {
        "operationId": "product_photo_background",
        "summary": "Product photo background",
        "description": "Processed locally on this website’s server without an external conversion API. Cuts out the foreground and adds a solid colour. Does not generate scenes or add artificial shadows.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "background": {
                        "type": "string",
                        "description": "Background colour",
                        "default": "#ffffff"
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ai-image-generator/run": {
      "post": {
        "operationId": "ai_image_generator",
        "summary": "AI image generator",
        "description": "Generate a 512 × 512 image using a local Tiny SD model on this server. No external image service. Usually takes several seconds or longer. Describe the subject, setting and style; generated text and fine details may be inaccurate.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "seed": {
                        "type": "number",
                        "description": "Seed (repeat a result)",
                        "default": 42.0,
                        "minimum": 0,
                        "maximum": 2147483647,
                        "multipleOf": 1
                      },
                      "steps": {
                        "type": "string",
                        "description": "Detail steps",
                        "default": "20",
                        "enum": [
                          "12",
                          "20",
                          "30"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/alt-text-generator/run": {
      "post": {
        "operationId": "alt_text_generator",
        "summary": "Alt text generator",
        "description": "Local BLIP image descriptions. Suggestions can be wrong and do not include surrounding page context. Review and edit before publishing.",
        "tags": [
          "accessibility-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/document-summarizer/run": {
      "post": {
        "operationId": "document_summarizer",
        "summary": "Document summarizer",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Selectable text only; scanned documents need OCR. Source limited to 16,000 characters.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/chat-with-document/run": {
      "post": {
        "operationId": "chat_with_document",
        "summary": "Chat with document",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Answers from one uploaded document per request. No persistent index or chat history is stored. Source limited to 16,000 characters.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "question": {
                        "type": "string",
                        "description": "Your question",
                        "default": ""
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/receipt-to-csv/run": {
      "post": {
        "operationId": "receipt_to_csv",
        "summary": "Receipt to CSV",
        "description": "Processed locally on this website’s server without an external conversion API. English OCR produces reviewable source lines and amount candidates. Merchant, tax, currency, and totals are not automatically verified.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/image-table-to-csv/run": {
      "post": {
        "operationId": "image_table_to_csv",
        "summary": "Image table to CSV",
        "description": "Processed locally on this website’s server without an external conversion API. English OCR groups words by spacing. Simple straight tables work best; merged cells and borderless layouts need review.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/document-translator/run": {
      "post": {
        "operationId": "document_translator",
        "summary": "Document translator",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. Translates extracted text. Original document layout is not preserved.",
        "tags": [
          "document-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "language": {
                        "type": "string",
                        "description": "Translate to",
                        "default": "English",
                        "enum": [
                          "English",
                          "Spanish",
                          "French",
                          "German",
                          "Portuguese"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/semantic-deduplication/run": {
      "post": {
        "operationId": "semantic_deduplication",
        "summary": "Semantic deduplication",
        "description": "Local MiniLM embeddings propose similarity groups. At most 500 rows with 1,000 characters per text value. All rows are retained for review; no automatic deletion.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "column": {
                        "type": "string",
                        "description": "Text column name",
                        "default": "text"
                      },
                      "threshold": {
                        "type": "number",
                        "description": "Similarity threshold",
                        "default": 0.85,
                        "minimum": 0.5,
                        "maximum": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/text-classifier/run": {
      "post": {
        "operationId": "text_classifier",
        "summary": "Text classifier",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. One text item per line. Review uncertain classifications.",
        "tags": [
          "data-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "labels": {
                        "type": "string",
                        "description": "Category labels, separated by commas",
                        "default": "positive, negative, neutral"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/notes-to-flashcards/run": {
      "post": {
        "operationId": "notes_to_flashcards",
        "summary": "Notes to flashcards",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. At most 16,000 source characters. Generated suggestions require your review.",
        "tags": [
          "education-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/quiz-from-notes/run": {
      "post": {
        "operationId": "quiz_from_notes",
        "summary": "Quiz from notes",
        "description": "Runs with local model weights on this website’s server. No external AI API is used. Review the result for errors. At most 16,000 source characters. Generated suggestions require your review.",
        "tags": [
          "education-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/redact-personal-information/run": {
      "post": {
        "operationId": "redact_personal_information",
        "summary": "Redact personal information",
        "description": "Suggest redactions in English text using a local entity model and contact patterns. Review names, emails, phone numbers and street addresses in the JSON preview. Private details may be missed and public text may be flagged. Up to 16,000 characters. This does not guarantee anonymization.",
        "tags": [
          "privacy-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/list-combinations/run": {
      "post": {
        "operationId": "list_combinations",
        "summary": "List combinations",
        "description": "One item per line. Separate lists with a blank line. Maximum 10,000 results.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "separator": {
                        "type": "string",
                        "description": "Join items with",
                        "default": " "
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/emoji-picker/run": {
      "post": {
        "operationId": "emoji_picker",
        "summary": "Emoji picker",
        "description": "Search English emoji labels and aliases, then copy the sequence you need. Unicode artwork differs across platforms.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/online-notepad/run": {
      "post": {
        "operationId": "online_notepad",
        "summary": "Online notepad",
        "description": "Plain-text notes stay in this tab. Download to keep a copy; closing the tab clears unsaved text.",
        "tags": [
          "text-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/word-art-generator/run": {
      "post": {
        "operationId": "word_art_generator",
        "summary": "Word art generator",
        "description": "SVG export uses your system sans-serif font. Check wrapping and font appearance in the destination.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": "number",
                        "description": "Font size",
                        "default": 48.0
                      },
                      "width": {
                        "type": "number",
                        "description": "Canvas width",
                        "default": 800.0
                      },
                      "height": {
                        "type": "number",
                        "description": "Canvas height",
                        "default": 300.0
                      },
                      "color": {
                        "type": "string",
                        "description": "Text",
                        "default": "#171717"
                      },
                      "background": {
                        "type": "string",
                        "description": "Background",
                        "default": "#ffffff"
                      },
                      "outline": {
                        "type": "string",
                        "description": "Outline",
                        "default": "#171717"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/curved-text-generator/run": {
      "post": {
        "operationId": "curved_text_generator",
        "summary": "Curved text generator",
        "description": "SVG export uses your system sans-serif font. Check wrapping and font appearance in the destination.",
        "tags": [
          "design-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": "number",
                        "description": "Font size",
                        "default": 48.0
                      },
                      "width": {
                        "type": "number",
                        "description": "Canvas width",
                        "default": 800.0
                      },
                      "height": {
                        "type": "number",
                        "description": "Canvas height",
                        "default": 300.0
                      },
                      "color": {
                        "type": "string",
                        "description": "Text",
                        "default": "#171717"
                      },
                      "background": {
                        "type": "string",
                        "description": "Background",
                        "default": "#ffffff"
                      },
                      "curve": {
                        "type": "number",
                        "description": "Curve height",
                        "default": 200.0
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/circle-crop-image/run": {
      "post": {
        "operationId": "circle_crop_image",
        "summary": "Circle crop image",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/round-image-corners/run": {
      "post": {
        "operationId": "round_image_corners",
        "summary": "Round image corners",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "radius": {
                        "type": "number",
                        "description": "Corner radius (px)",
                        "default": 24.0,
                        "minimum": 0,
                        "maximum": 8192,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/add-image-border/run": {
      "post": {
        "operationId": "add_image_border",
        "summary": "Add image border",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "border": {
                        "type": "number",
                        "description": "Border width (px)",
                        "default": 12.0,
                        "minimum": 0,
                        "maximum": 1000,
                        "multipleOf": 1
                      },
                      "color": {
                        "type": "string",
                        "description": "Border color",
                        "default": "#ffffff"
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/flip-image/run": {
      "post": {
        "operationId": "flip_image",
        "summary": "Flip image",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "axis": {
                        "type": "string",
                        "description": "Flip direction",
                        "default": "Horizontal",
                        "enum": [
                          "Horizontal",
                          "Vertical"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sepia-image/run": {
      "post": {
        "operationId": "sepia_image",
        "summary": "Sepia image",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "amount": {
                        "type": "number",
                        "description": "Sepia strength (%)",
                        "default": 100.0,
                        "minimum": 0,
                        "maximum": 100,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/adjust-image-saturation/run": {
      "post": {
        "operationId": "adjust_image_saturation",
        "summary": "Adjust image saturation",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "amount": {
                        "type": "number",
                        "description": "Saturation (%)",
                        "default": 140.0,
                        "minimum": 0,
                        "maximum": 200,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/adjust-image-contrast/run": {
      "post": {
        "operationId": "adjust_image_contrast",
        "summary": "Adjust image contrast",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "amount": {
                        "type": "number",
                        "description": "Contrast (%)",
                        "default": 120.0,
                        "minimum": 0,
                        "maximum": 200,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pixelate-image/run": {
      "post": {
        "operationId": "pixelate_image",
        "summary": "Pixelate image",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame. Pixelation is an effect, not secure redaction.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "block": {
                        "type": "number",
                        "description": "Block size (px)",
                        "default": 12.0,
                        "minimum": 1,
                        "maximum": 500,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/threshold-image/run": {
      "post": {
        "operationId": "threshold_image",
        "summary": "Threshold image",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "threshold": {
                        "type": "number",
                        "description": "Black / white threshold",
                        "default": 128.0,
                        "minimum": 0,
                        "maximum": 255,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/sharpen-image/run": {
      "post": {
        "operationId": "sharpen_image",
        "summary": "Sharpen image",
        "description": "Runs on your device. Select an image for an automatic preview; settings update the result. Animated WebP produces one still frame.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "amount": {
                        "type": "number",
                        "description": "Sharpening strength (%)",
                        "default": 50.0,
                        "minimum": 0,
                        "maximum": 100,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/bulk-resize-images/run": {
      "post": {
        "operationId": "bulk_resize_images",
        "summary": "Bulk resize images",
        "description": "Runs on your device. Select up to 20 images. Aspect ratios and transparency are preserved. PNG output can be larger than a JPEG original.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "width": {
                        "type": "number",
                        "description": "Maximum width (px)",
                        "default": 1200.0,
                        "minimum": 1,
                        "maximum": 8192,
                        "multipleOf": 1
                      },
                      "enlarge": {
                        "type": "boolean",
                        "description": "Allow enlarging smaller images",
                        "default": false
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/split-pdf-in-half/run": {
      "post": {
        "operationId": "split_pdf_in_half",
        "summary": "Split PDF in half",
        "description": "Runs on your device. Up to 100 pages per input. Splits the visible page area; cropped content remains in the PDF. This is not redaction.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "direction": {
                        "type": "string",
                        "description": "Split direction",
                        "default": "Left and right",
                        "enum": [
                          "Left and right",
                          "Top and bottom"
                        ]
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/alternate-merge-pdf/run": {
      "post": {
        "operationId": "alternate_merge_pdf",
        "summary": "Alternate merge PDF",
        "description": "Runs on your device. Up to 100 pages per input. Choose front scans first, back scans second. Extra pages are appended in order.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "reverse": {
                        "type": "boolean",
                        "description": "Reverse the second PDF (back scans)",
                        "default": false
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 20,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/bates-number-pdf/run": {
      "post": {
        "operationId": "bates_number_pdf",
        "summary": "Bates number PDF",
        "description": "Runs on your device. Up to 100 pages per input. Labels may overlap existing content in the top or bottom margin. Supports unrotated pages and basic Latin text.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "prefix": {
                        "type": "string",
                        "description": "Reference prefix",
                        "default": "DOC-"
                      },
                      "start": {
                        "type": "number",
                        "description": "Starting number",
                        "default": 1.0,
                        "minimum": 0,
                        "maximum": 999999999,
                        "multipleOf": 1
                      },
                      "digits": {
                        "type": "number",
                        "description": "Minimum number of digits",
                        "default": 6.0,
                        "minimum": 1,
                        "maximum": 12,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/pdf-header-footer/run": {
      "post": {
        "operationId": "pdf_header_footer",
        "summary": "PDF header footer",
        "description": "Runs on your device. Up to 100 pages per input. Labels may overlap existing content in the top or bottom margin. Supports unrotated pages and basic Latin text.",
        "tags": [
          "pdf-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "header": {
                        "type": "string",
                        "description": "Header text",
                        "default": ""
                      },
                      "footer": {
                        "type": "string",
                        "description": "Footer text",
                        "default": "Page {page} of {pages}"
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/font-inspector/run": {
      "post": {
        "operationId": "font_inspector",
        "summary": "Font inspector",
        "description": "Processed on our server with no external conversion service. Reads font metadata and coverage. Embedding flags are metadata, not legal permission. Check the font license before reuse.",
        "tags": [
          "font-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/ttf-to-woff2/run": {
      "post": {
        "operationId": "ttf_to_woff2",
        "summary": "TTF to WOFF2",
        "description": "Processed on our server with no external conversion service. Preserves TrueType glyphs and layout tables. Check that your font license permits web embedding.",
        "tags": [
          "font-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/woff2-to-ttf/run": {
      "post": {
        "operationId": "woff2_to_ttf",
        "summary": "WOFF2 to TTF",
        "description": "Processed on our server with no external conversion service. Only TrueType-outline WOFF2 is supported. CFF-outline fonts require an OTF output and are rejected here.",
        "tags": [
          "font-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {}
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/image-to-stl/run": {
      "post": {
        "operationId": "image_to_stl",
        "summary": "Image to STL",
        "description": "Processed on our server with no external conversion service. Creates a solid height-map relief, not a complete 3D object. Transparent pixels use white. Open the STL in a slicer and confirm millimeter units before printing.",
        "tags": [
          "maker-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "width": {
                        "type": "number",
                        "description": "Model width (mm)",
                        "default": 100.0,
                        "minimum": 1,
                        "maximum": 500,
                        "multipleOf": 1
                      },
                      "height": {
                        "type": "number",
                        "description": "Relief height (mm)",
                        "default": 5.0,
                        "minimum": 1,
                        "maximum": 50,
                        "multipleOf": 1
                      },
                      "base": {
                        "type": "number",
                        "description": "Base thickness (mm)",
                        "default": 2.0,
                        "minimum": 1,
                        "maximum": 20,
                        "multipleOf": 1
                      },
                      "resolution": {
                        "type": "number",
                        "description": "Samples on longest side",
                        "default": 100.0,
                        "minimum": 8,
                        "maximum": 256,
                        "multipleOf": 1
                      },
                      "invert": {
                        "type": "boolean",
                        "description": "Darker pixels are higher",
                        "default": false
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tools/png-to-svg/run": {
      "post": {
        "operationId": "png_to_svg",
        "summary": "PNG to SVG",
        "description": "Processed on our server with no external conversion service. Traces colored shapes with VTracer on CPU. Best for logos and illustrations. Photos can produce large SVG files; use an image of at most 4 megapixels.",
        "tags": [
          "image-tools"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "type": "string",
                    "maxLength": 1000000,
                    "default": "",
                    "description": "Plain text input. File tools use files instead unless otherwise documented."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "precision": {
                        "type": "number",
                        "description": "Color precision (bits per channel)",
                        "default": 6.0,
                        "minimum": 1,
                        "maximum": 8,
                        "multipleOf": 1
                      }
                    }
                  },
                  "files": {
                    "type": "array",
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "base64"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200,
                          "description": "Filename only, no path."
                        },
                        "mime": {
                          "type": "string",
                          "maxLength": 150
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": 0,
                          "description": "Optional decoded byte count; must match content if supplied."
                        },
                        "base64": {
                          "type": "string",
                          "contentEncoding": "base64",
                          "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Completed result. Binary files are base64 encoded in result.files.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "tool",
                    "result"
                  ],
                  "properties": {
                    "tool": {
                      "type": "string"
                    },
                    "result": {
                      "type": "object",
                      "required": [
                        "text",
                        "files"
                      ],
                      "properties": {
                        "text": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "data": {
                          "description": "Parsed JSON when the textual result is JSON."
                        },
                        "name": {
                          "type": "string"
                        },
                        "mime": {
                          "type": "string"
                        },
                        "files": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name",
                              "mime",
                              "bytes",
                              "base64"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "mime": {
                                "type": "string"
                              },
                              "bytes": {
                                "type": "integer"
                              },
                              "base64": {
                                "type": "string",
                                "contentEncoding": "base64"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Origin or host rejected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown or unavailable tool",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Input exceeds limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "JSON required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Server busy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Execution failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Execution time limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}