Apache Storm website screenshot

Apache Storm

Apache Storm is a free and open-source distributed real-time computation system that makes it easy to reliably process unbounded streams of data at scale. It provides a simple programming model (topologies with spouts and bolts), guaranteed message processing, horizontal scalability, and fault tolerance. Storm integrates with queuing and database technologies including Apache Kafka and Apache Cassandra and is governed by the Apache Software Foundation.

Apache Storm publishes 1 API on the APIs.io network: REST API. Tagged areas include Distributed Computing, Event Processing, Real-Time, Stream Processing, and Open Source.

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

37.1/100 thin ▬ flat Agent 39/100 agent aware Full breakdown ↓
scored 2026-07-21 · rubric v0.4
2 APIs 6 Features
Distributed ComputingEvent ProcessingReal-TimeStream ProcessingOpen Source

API Rating

API Evangelist API Evangelist Rating How this is scored →
scored 2026-07-21 · rubric v0.4
Composite quality — 37.1/100 · thin
Contract Quality 8.0 / 25
Developer Ergonomics 7.0 / 20
Commercial Clarity 10.0 / 20
Operational Transparency 6.2 / 13
Governance 0.0 / 12
Discoverability 6.0 / 10
Agent readiness — 39/100 · agent aware
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 0 / 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-storm: 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 Storm REST API

The Storm UI REST API provides HTTP endpoints for monitoring and managing Storm clusters, topologies, and components. It exposes cluster summary, topology listing, topology deta...

Apache Storm Topology API

The Storm Topology API provides Java and other language bindings for building real-time processing topologies composed of spouts (data sources) and bolts (processing units). It ...

Collections

Pricing Plans

Rate Limits

Apache Storm Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Guaranteed Message Processing

At-least-once processing guarantees through ack/fail tracking mechanism.

Scalable Topologies

Horizontally scalable stream processing topologies with configurable parallelism.

Trident API

High-level micro-batch processing abstraction with stateful streaming and exactly-once semantics.

DRPC

Distributed Remote Procedure Calls for synchronous distributed computation.

Windowing Operations

Tumbling and sliding window processing over bounded time or count windows.

Multi-Language Support

Topology components written in Java, Python, Ruby, and other languages via Multilang protocol.

Use Cases

Real-Time Analytics

Continuous computation over live event streams for operational dashboards.

ETL Processing

Real-time data transformation and enrichment pipelines.

Machine Learning Scoring

Online scoring of ML models against streaming feature data.

Fraud Detection

Low-latency fraud detection rules applied to transaction streams.

Integrations

Apache Kafka

Kafka Spout for consuming messages from Kafka topics as Storm data sources.

Apache Cassandra

CassandraBolt for writing processed stream data to Cassandra.

Apache Hive

HiveBolt for streaming inserts into Apache Hive tables.

Redis

Redis integration for stateful lookups and caching in Storm bolts.

Elasticsearch

ElasticsearchBolt for indexing stream data into Elasticsearch.

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 2

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

Company 1

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Apache Storm UI REST API
  version: '1.0'
items:
- info:
    name: Cluster configuration
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/cluster/configuration
  docs: Cluster configuration
- info:
    name: Cluster summary
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/cluster/summary
  docs: Cluster summary
- info:
    name: Supervisor summary
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/supervisor/summary
  docs: Supervisor summary
- info:
    name: Nimbus summary
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/nimbus/summary
  docs: Nimbus summary
- info:
    name: Topology history summary
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/history/summary
  docs: Topology history summary
- info:
    name: Supervisor details
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/supervisor
  docs: Supervisor details
- info:
    name: Owner resource summary
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/owner-resources
  docs: Owner resource summary
- info:
    name: Topology summary
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/topology/summary
  docs: Topology summary
- info:
    name: Topology workers
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/topology-workers/:id
    params:
    - name: id
      value: ''
      type: path
  docs: Topology workers
- info:
    name: Topology details
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/topology/:id
    params:
    - name: id
      value: ''
      type: path
  docs: Topology details
- info:
    name: Topology metrics
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/topology/:id/metrics
    params:
    - name: id
      value: ''
      type: path
  docs: Topology metrics
- info:
    name: Component stats
    type: http
  http:
    method: GET
    url: http://localhost:8080/api/v1/topology/:id/component/:component
    params:
    - name: id
      value: ''
      type: path
    - name: component
      value: ''
      type: path
  docs: Component stats
- info:
    name: Start profiling
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/profiling/start/:host-port/:timeout
    params:
    - name: id
      value: ''
      type: path
    - name: host-port
      value: ''
      type: path
    - name: timeout
      value: ''
      type: path
  docs: Start profiling
- info:
    name: Dump profile
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/profiling/dumpprofile/:host-port
    params:
    - name: id
      value: ''
      type: path
    - name: host-port
      value: ''
      type: path
  docs: Dump profile
- info:
    name: Stop profiling
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/profiling/stop/:host-port
    params:
    - name: id
      value: ''
      type: path
    - name: host-port
      value: ''
      type: path
  docs: Stop profiling
- info:
    name: Dump jstack
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/profiling/dumpjstack/:host-port
    params:
    - name: id
      value: ''
      type: path
    - name: host-port
      value: ''
      type: path
  docs: Dump jstack
- info:
    name: Dump heap
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/profiling/dumpheap/:host-port
    params:
    - name: id
      value: ''
      type: path
    - name: host-port
      value: ''
      type: path
  docs: Dump heap
- info:
    name: Restart worker
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/profiling/restartworker/:host-port
    params:
    - name: id
      value: ''
      type: path
    - name: host-port
      value: ''
      type: path
  docs: Restart worker
- info:
    name: Activate topology
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/activate
    params:
    - name: id
      value: ''
      type: path
  docs: Activate topology
- info:
    name: Deactivate topology
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/deactivate
    params:
    - name: id
      value: ''
      type: path
  docs: Deactivate topology
- info:
    name: Rebalance topology
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/rebalance/:wait-time
    params:
    - name: id
      value: ''
      type: path
    - name: wait-time
      value: ''
      type: path
  docs: Rebalance topology
- info:
    name: Kill topology
    type: http
  http:
    method: POST
    url: http://localhost:8080/api/v1/topology/:id/kill/:wait-time
    params:
    - name: id
      value: ''
      type: path
    - name: wait-time
      value: ''
      type: path
  docs: Kill topology
- info:
    name: DRPC function call (GET)
    type: http
  http:
    method: GET
    url: http://localhost:8080/drpc/:func
    params:
    - name: func
      value: ''
      type: path
  docs: DRPC function call (GET)
- info:
    name: DRPC function call (POST)
    type: http
  http:
    method: POST
    url: http://localhost:8080/drpc/:func
    params:
    - name: func
      value: ''
      type: path
  docs: DRPC function call (POST)
- info:
    name: DRPC function call with args
    type: http
  http:
    method: GET
    url: http://localhost:8080/drpc/:func/:args
    params:
    - name: func
      value: ''
      type: path
    - name: args
      value: ''
      type: path
  docs: DRPC function call with args
bundled: true