Apache Tomcat website screenshot

Apache Tomcat

Apache Tomcat is an open-source implementation of the Java Servlet, JavaServer Pages (JSP), Java Expression Language, and Java WebSocket technologies. It provides a pure Java HTTP web server and servlet container for hosting Java web applications. Tomcat exposes management APIs via the Manager application (HTTP text protocol), JMX for monitoring, and a Virtual Host Manager for configuration management. It is maintained by the Apache Software Foundation and is one of the most widely deployed Java application servers.

Apache Tomcat publishes 2 APIs on the APIs.io network. Tagged areas include Application Server, Java, JSP, Open Source, and Servlet.

Apache Tomcat’s developer surface includes authentication, documentation, developer portal, getting-started guide, release notes, support, and 5 more developer resources.

30.9/100 thin ▬ flat Agent 31/100 agent aware Full breakdown ↓
scored 2026-07-21 · rubric v0.4
2 APIs 7 Features
Application ServerJavaJSPOpen SourceServletWeb Server

API Rating

API Evangelist API Evangelist Rating How this is scored →
scored 2026-07-21 · rubric v0.4
Composite quality — 30.9/100 · thin
Contract Quality 0.0 / 25
Developer Ergonomics 8.7 / 20
Commercial Clarity 10.0 / 20
Operational Transparency 6.2 / 13
Governance 0.0 / 12
Discoverability 6.0 / 10
Agent readiness — 31/100 · agent aware
Machine-Readable Contract 0 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/apache-tomcat: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs

Apache Tomcat Manager API

The Tomcat Manager application provides an HTTP text protocol API for deploying, undeploying, starting, stopping, and reloading web applications remotely. Key endpoints include:...

Apache Tomcat JMX API

The Tomcat JMX API exposes management and monitoring beans for Connectors, Engines, Hosts, Contexts, Sessions, DataSources, thread pools, and memory via Java Management Extensio...

Collections

Pricing Plans

Rate Limits

Apache Tomcat Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Servlet Container

Jakarta Servlet 6.0 (formerly Java EE) compliant servlet container.

JSP Engine

JavaServer Pages compiler and runtime engine for dynamic HTML generation.

WebSocket Support

Jakarta WebSocket 2.1 implementation for full-duplex browser-server communication.

HTTP/2 Support

HTTP/2 multiplexing and server push via APR/Native connector.

SSL/TLS Termination

Built-in SSL/TLS support via JSSE or APR/OpenSSL connectors.

Connection Pooling

DBCP2-based database connection pool management via JNDI DataSource.

Clustering

Session replication across Tomcat cluster nodes via DeltaManager or BackupManager.

Use Cases

Java Web Application Hosting

Deploy and host Java Servlet/JSP web applications.

API Gateway Backend

Host REST API backends built with Spring MVC, JAX-RS, or plain servlets.

Microservices Container

Embedded Tomcat in Spring Boot for microservices deployment.

Legacy Application Migration

Host Java EE applications during cloud migration.

Integrations

Spring Boot

Embedded Tomcat as the default servlet container in Spring Boot applications.

Apache HTTP Server

mod_jk and mod_proxy_ajp for load balancing between Apache httpd and Tomcat.

Nginx

Nginx reverse proxy for Tomcat with SSL termination and load balancing.

Prometheus

JMX Exporter for exposing Tomcat metrics in Prometheus format.

Docker

Official Docker image for containerized Tomcat deployment.

Resources

Get Started 2

Portal, sign-up, and the first successful call

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 3

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 1

Pricing, plans, and the legal terms of use

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Apache Tomcat Manager Text API
  version: '10.1'
request:
  auth:
    type: basic
    username: '{{username}}'
    password: '{{password}}'
items:
- info:
    name: applications
    type: folder
  items:
  - info:
      name: List currently deployed applications
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/list
    docs: List currently deployed applications
  - info:
      name: Deploy application from a local path or appBase
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/deploy
      params:
      - name: path
        value: ''
        type: query
        description: Context path (with leading slash)
      - name: war
        value: ''
        type: query
        description: URL of a WAR or directory on the server, or filename in appBase
      - name: config
        value: ''
        type: query
        description: URL of a context configuration XML
      - name: update
        value: ''
        type: query
      - name: tag
        value: ''
        type: query
      - name: version
        value: ''
        type: query
    docs: Deploy application from a local path or appBase
  - info:
      name: Upload and deploy a WAR via HTTP PUT
      type: http
    http:
      method: PUT
      url: http://{host}:{port}/manager/text/deploy
      params:
      - name: path
        value: ''
        type: query
      - name: update
        value: ''
        type: query
      - name: tag
        value: ''
        type: query
      - name: version
        value: ''
        type: query
    docs: Upload and deploy a WAR via HTTP PUT
  - info:
      name: Undeploy an application (deletes WAR and docBase)
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/undeploy
      params:
      - name: path
        value: ''
        type: query
        description: Context path of the target application (with leading slash)
    docs: Undeploy an application (deletes WAR and docBase)
  - info:
      name: Reload an existing application
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/reload
      params:
      - name: path
        value: ''
        type: query
        description: Context path of the target application (with leading slash)
    docs: Reload an existing application
  - info:
      name: Start a stopped application
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/start
      params:
      - name: path
        value: ''
        type: query
        description: Context path of the target application (with leading slash)
    docs: Start a stopped application
  - info:
      name: Stop a running application (no undeploy)
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/stop
      params:
      - name: path
        value: ''
        type: query
        description: Context path of the target application (with leading slash)
    docs: Stop a running application (no undeploy)
- info:
    name: sessions
    type: folder
  items:
  - info:
      name: Display session statistics for an application
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/sessions
      params:
      - name: path
        value: ''
        type: query
        description: Context path of the target application (with leading slash)
    docs: Display session statistics for an application
  - info:
      name: Expire idle sessions
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/expire
      params:
      - name: path
        value: ''
        type: query
        description: Context path of the target application (with leading slash)
      - name: idle
        value: ''
        type: query
        description: Minutes of inactivity; 0 expires all sessions
    docs: Expire idle sessions
- info:
    name: server
    type: folder
  items:
  - info:
      name: Display Tomcat, OS, and JVM information
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/serverinfo
    docs: Display Tomcat, OS, and JVM information
  - info:
      name: List global JNDI resources
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/resources
      params:
      - name: type
        value: ''
        type: query
        description: Fully qualified Java class name to filter by
    docs: List global JNDI resources
  - info:
      name: Identify web applications with classloader memory leaks
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/findleaks
      params:
      - name: statusLine
        value: ''
        type: query
    docs: Identify web applications with classloader memory leaks
  - info:
      name: List SSL/TLS ciphers per connector
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/sslConnectorCiphers
    docs: List SSL/TLS ciphers per connector
  - info:
      name: List SSL/TLS certificate chains per connector
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/sslConnectorCerts
    docs: List SSL/TLS certificate chains per connector
  - info:
      name: List trusted certificates per connector
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/sslConnectorTrustedCerts
    docs: List trusted certificates per connector
  - info:
      name: Reload TLS configuration without restarting
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/sslReload
      params:
      - name: tlsHostName
        value: ''
        type: query
    docs: Reload TLS configuration without restarting
  - info:
      name: Capture a JVM thread dump
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/threaddump
    docs: Capture a JVM thread dump
  - info:
      name: Display JVM diagnostic information
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/vminfo
    docs: Display JVM diagnostic information
  - info:
      name: Persist server or per-context configuration to disk
      type: http
    http:
      method: GET
      url: http://{host}:{port}/manager/text/save
      params:
      - name: path
        value: ''
        type: query
    docs: Persist server or per-context configuration to disk
bundled: true