openapi: 3.1.0 info: title: Apache Tomcat Manager API description: >- The Apache Tomcat Manager application provides an HTTP text interface for deploying, managing, and monitoring Java web applications. Includes application lifecycle management (deploy, start, stop, reload, undeploy), session management, server status, diagnostics (thread dumps, VM info, memory leak detection), SSL/TLS management, JMX proxy access, and configuration persistence. version: '10.1' contact: name: Apache Tomcat Users Mailing List url: https://tomcat.apache.org/lists.html license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: http://localhost:8080/manager description: Local Tomcat instance (default) security: - basicAuth: [] tags: - name: Applications description: Web application deployment and lifecycle management - name: Sessions description: Session management and statistics - name: Diagnostics description: Server diagnostics and thread management - name: SSL description: SSL/TLS certificate and cipher management - name: Configuration description: Server configuration management - name: JMX description: JMX proxy operations for MBean access - name: Status description: Server status and metrics paths: /text/list: get: operationId: listApplications summary: List Applications description: Returns a list of all deployed web applications on the virtual host. tags: - Applications responses: '200': description: Plain text list of applications content: text/plain: schema: type: string example: | OK - Listed applications for virtual host localhost /webdav:running:0:webdav /examples:running:0:examples /manager:running:0:manager /:running:0:ROOT /text/deploy: get: operationId: deployFromPath summary: Deploy Application From Path description: >- Deploys a web application from a local WAR file or directory path on the server filesystem. tags: - Applications parameters: - name: path in: query required: true schema: type: string description: Context path for the application (must start with /) example: /myapp - name: war in: query schema: type: string description: URL or path to WAR file or directory example: file:/path/to/webapp.war - name: config in: query schema: type: string description: URL to a Context configuration XML file - name: update in: query schema: type: boolean default: false description: Undeploy existing app before deploying - name: tag in: query schema: type: string description: Tag name to associate with deployment - name: version in: query schema: type: string description: Version string for parallel deployments responses: '200': description: Deployment result content: text/plain: schema: type: string put: operationId: deployWarFile summary: Deploy WAR File description: Deploys a WAR file uploaded via HTTP PUT request body. tags: - Applications parameters: - name: path in: query required: true schema: type: string description: Context path for the application - name: update in: query schema: type: boolean default: false - name: tag in: query schema: type: string - name: config in: query schema: type: string requestBody: required: true content: application/octet-stream: schema: type: string format: binary responses: '200': description: Deployment result content: text/plain: schema: type: string /text/undeploy: get: operationId: undeployApplication summary: Undeploy Application description: >- Removes a web application and its files from the server. WARNING: This permanently deletes application artifacts from the appBase directory. tags: - Applications parameters: - name: path in: query required: true schema: type: string description: Context path of the application to undeploy - name: version in: query schema: type: string responses: '200': description: Undeploy result content: text/plain: schema: type: string /text/start: get: operationId: startApplication summary: Start Application description: Starts a previously stopped web application. tags: - Applications parameters: - name: path in: query required: true schema: type: string description: Context path of the application to start - name: version in: query schema: type: string responses: '200': description: Start result content: text/plain: schema: type: string /text/stop: get: operationId: stopApplication summary: Stop Application description: Stops a running web application, making it unavailable without undeploying. tags: - Applications parameters: - name: path in: query required: true schema: type: string description: Context path of the application to stop - name: version in: query schema: type: string responses: '200': description: Stop result content: text/plain: schema: type: string /text/reload: get: operationId: reloadApplication summary: Reload Application description: >- Reloads a web application without full shutdown, picking up changes in WEB-INF/classes and WEB-INF/lib. tags: - Applications parameters: - name: path in: query required: true schema: type: string description: Context path of the application to reload - name: version in: query schema: type: string responses: '200': description: Reload result content: text/plain: schema: type: string /text/sessions: get: operationId: getSessionStats summary: Get Session Statistics description: Returns session count statistics grouped by inactivity duration. tags: - Sessions parameters: - name: path in: query required: true schema: type: string description: Context path of the application - name: version in: query schema: type: string responses: '200': description: Session statistics content: text/plain: schema: type: string /text/expire: get: operationId: expireSessions summary: Expire Sessions description: Expires sessions that have been idle for more than the specified number of minutes. tags: - Sessions parameters: - name: path in: query required: true schema: type: string description: Context path of the application - name: idle in: query required: true schema: type: integer description: Minutes of inactivity (0 to expire all sessions) responses: '200': description: Expiry result content: text/plain: schema: type: string /text/serverinfo: get: operationId: getServerInfo summary: Get Server Info description: Returns OS properties, JVM properties, and Tomcat version information. tags: - Diagnostics responses: '200': description: Server information content: text/plain: schema: type: string /text/resources: get: operationId: listGlobalResources summary: List Global JNDI Resources description: Returns a list of global JNDI resources configured in Tomcat. tags: - Diagnostics parameters: - name: type in: query schema: type: string description: Filter by Java class name (e.g., javax.sql.DataSource) responses: '200': description: List of JNDI resources content: text/plain: schema: type: string /text/findleaks: get: operationId: findMemoryLeaks summary: Find Memory Leaks description: >- Identifies web applications that have caused memory leaks upon reload. WARNING: Triggers full garbage collection. Use with caution in production. tags: - Diagnostics parameters: - name: statusLine in: query schema: type: boolean default: false responses: '200': description: Memory leak report content: text/plain: schema: type: string /text/threaddump: get: operationId: getThreadDump summary: Get Thread Dump description: Returns a full thread dump of all JVM threads. tags: - Diagnostics responses: '200': description: Thread dump output content: text/plain: schema: type: string /text/vminfo: get: operationId: getVmInfo summary: Get VM Info description: Returns JVM information including memory usage and system properties. tags: - Diagnostics responses: '200': description: VM information content: text/plain: schema: type: string /text/sslConnectorCiphers: get: operationId: getSslCiphers summary: Get SSL Connector Ciphers description: Returns the SSL/TLS ciphers currently in use for each SSL connector. tags: - SSL responses: '200': description: SSL cipher information content: text/plain: schema: type: string /text/sslConnectorCerts: get: operationId: getSslCertificates summary: Get SSL Connector Certificates description: Returns certificate chain information for each SSL connector. tags: - SSL responses: '200': description: SSL certificate chain information content: text/plain: schema: type: string /text/sslConnectorTrustedCerts: get: operationId: getSslTrustedCertificates summary: Get SSL Trusted Certificates description: Returns trusted certificate information for each SSL connector. tags: - SSL responses: '200': description: Trusted certificate information content: text/plain: schema: type: string /text/sslReload: get: operationId: reloadSslConfiguration summary: Reload SSL Configuration description: >- Reloads SSL/TLS certificate and key files without re-parsing server.xml. Optionally targets a specific TLS virtual host. tags: - SSL parameters: - name: tlsHostName in: query schema: type: string description: Specific TLS virtual host name to reload responses: '200': description: SSL reload result content: text/plain: schema: type: string /text/save: get: operationId: saveConfiguration summary: Save Configuration description: >- Saves the current server configuration to server.xml. Optionally saves a specific application context to its context XML file. tags: - Configuration parameters: - name: path in: query schema: type: string description: Context path to save specific application context responses: '200': description: Save result content: text/plain: schema: type: string /status: get: operationId: getServerStatus summary: Get Server Status description: Returns server status including connector details, memory usage, and thread statistics. tags: - Status parameters: - name: XML in: query schema: type: boolean description: Return response in XML format - name: JSON in: query schema: type: boolean description: Return response in JSON format responses: '200': description: Server status content: text/html: schema: type: string text/xml: schema: type: string application/json: schema: type: object /jmxproxy/: get: operationId: jmxProxy summary: JMX Proxy description: >- Provides HTTP-based access to JMX MBeans. Supports query, get, set, and invoke operations on server management beans. tags: - JMX parameters: - name: qry in: query schema: type: string description: JMX query expression (e.g., *:type=RequestProcessor,*) example: '*:type=RequestProcessor,*' - name: get in: query schema: type: string description: MBean name to get attribute from - name: att in: query schema: type: string description: Attribute name to get or set - name: key in: query schema: type: string description: Key within a CompositeData attribute - name: set in: query schema: type: string description: MBean name for attribute setting - name: val in: query schema: type: string description: New attribute value - name: invoke in: query schema: type: string description: MBean name for method invocation - name: op in: query schema: type: string description: Method name to invoke - name: ps in: query schema: type: string description: Parameters for method invocation responses: '200': description: JMX operation result content: text/plain: schema: type: string components: securitySchemes: basicAuth: type: http scheme: basic description: >- HTTP Basic authentication. User must have appropriate role in tomcat-users.xml: manager-script for text interface, manager-jmx for JMX proxy.