---
title: rest api
---

hydrant's REST API is split into public endpoints (safe to expose) and management endpoints (keep private). see [getting started](../getting-started.md#reverse-proxying) for guidance on what to expose.

## public

- `GET /stream`: [stream API](stream.md), subscribe to the ordered websocket event stream.
- `GET /stream/head`: [stream API](stream.md#get-streamhead), get the newest durable event ID to detect when a replay has caught up.
- `GET /subscribe`: [jetstream API](jetstream.md), subscribe to a filtered, jetstream-compatible websocket event stream.
- `GET /stats`: get stats about the database (counts of repos, records, events; sizes of keyspaces on disk).
- `GET /health` / `GET /_health` / `GET /version` / `GET /_version`: health check; returns the running version as JSON (`{"name","version","mode"}`).

## management

only served on `unix:` binds unless `HYDRANT_API_TCP_MANAGEMENT=true`, see [getting started](../getting-started.md#reverse-proxying).


- [filter](filter.md): NSID filter configuration
- [ingestion](ingestion.md): enable/disable crawler, firehose, backfill at runtime
- [crawler](crawler.md): crawler source management
- [firehose](firehose.md): firehose source management
- [pds](pds.md): bans and rate-limit tier assignments
- [repos](repos.md): explicit repository tracking, resyncing, untracking
- [database](database.md): compression training, compaction
