Reference

Controlled BetaVerification Required

Message Broker HTTP Reference

Source-backed reference for Message Broker health, stream, record, cursor, queue, replication, audit, metrics, auth, and storage administration HTTP routes.

Current availability

Private Beta. Public beta is scheduled for .

Maturity Status

Runtime Routes

Controlled Beta

The routes below are implemented in the current broker route classifier and handler modules, with local smoke coverage for the main stream, queue, and inspection workflows.

Review Boundary

Verification Required

Product, security, operations, and docs QA review still need to accept the route wording before this page is used for external commitments.

Reference Summary

IDTypeNameMethodPathMaturityEvidence
smb-http-healthapiHealth readiness
Public readiness route with storage, release, security, audit, and metrics exporter posture.
GET/healthControlled BetaSMB-EVID-002, runtime_observability.rs
smb-http-authapiRuntime auth
Classifies non-health routes before handlers run and maps them to tenant or stream permissions.
mixedall non-health routesControlled BetaSMB-EVID-002, runtime-authentication-middleware.md
smb-http-stream-managementapiStream management
Creates, lists, and describes tenant-visible runtime streams.
PUT, GET/v1/streamsControlled BetaSMB-EVID-002, SMB-EVID-003, runtime_streams.rs
smb-http-versioned-recordsapiVersioned records
Publishes one native-shaped record or replays a bounded page by offset or time.
POST, GET/v1/streams/{stream}/recordsControlled BetaSMB-EVID-003, runtime_records.rs
smb-http-cursors-and-inspectionapiCursors and inspection
Inspects groups, cursors, leases, delayed retries, replay consumers, and audited cursor writes.
GET, PUT, POST/v1/streams/{stream}/consumer-groups/{group}Controlled BetaSMB-EVID-003, runtime_cursors.rs, runtime_inspection.rs
smb-http-shared-queueapiShared queue
Claims work, renews leases, acknowledges, nacks, retries, or dead-letters delivery state.
POST/claims and /deliveries/{delivery}/{action}Controlled BetaSMB-EVID-004, runtime_queue.rs
smb-http-replicationapiReplication controls
Inspects configured replication binding state and runs bounded worker control actions.
GET, POST/v1/replication/status and worker routesControlled BetaSMB-EVID-005, runtime_replication.rs
smb-http-auditapiAudit query and export
Reads parsed audit events or NDJSON exports from the reserved system audit stream.
GET/v1/audit/events, /v1/audit/exportControlled BetaSMB-EVID-002, runtime_audit.rs
smb-http-metricsapiMetrics scrape
Returns text metrics when the broker starts with HTTP metrics exposure enabled.
GET/metricsControlled BetaSMB-EVID-002, runtime_observability.rs
smb-http-storage-adminapiStorage admin
Inspects catalog, retention, tiering readiness, archive manifests, and quarantine state.
GET, POST/streams/{stream} storage routesControlled BetaSMB-EVID-002, runtime_storage_admin.rs

Authentication Model

GET /health is public. Every other implemented route is protected in api-key, mtls, or external mode. The default insecure-local mode allows local protected requests without credentials and reports that posture in health.

Route familyPermission
GET /healthpublic readiness
GET /v1/audit/events and /v1/audit/exporttenant administer
GET /metrics and GET /v1/replication/statustenant inspect
GET /v1/streamstenant inspect
PUT /v1/streams/{stream}create_stream
GET /v1/streams/{stream} and storage inspection routesstream inspect
POST /v1/streams/{stream}/recordsstream publish
GET /v1/streams/{stream}/records and queue routesstream consume
Cursor commit and rewind routesstream ack
Replication poll, pause, resume, and target applytenant administer

Streams And Records

Versioned stream and record routes
RouteRequestResponseErrorsEvidence
PUT /v1/streams/{stream}JSON body with optional default_durability, retention, and failure_policy.201 Created with stream, created flag, and acknowledgement.400 invalid_request; 409 stream_already_exists; 500 internal_error.runtime_streams.rs
GET /v1/streamsNo query string or body.200 OK with tenant-visible stream descriptions.400 invalid_query.runtime_streams.rs
GET /v1/streams/{stream}No query string or body.200 OK with one stream description.400 invalid_request; 404 stream_not_found.runtime_streams.rs
POST /v1/streams/{stream}/recordsJSON record with message_id plus payload or payload_hex, optional key, event_time_ms, headers, and durability_mode.201 Created with offset, next_offset, payload bytes, durability acknowledgement, and optional replication receipt.400 invalid_request or invalid_payload; 429 quota_exceeded; 503 replication_unavailable; 500 internal_error.runtime_records.rs
GET /v1/streams/{stream}/recordsOptional start_offset, event_time_ms, or ingest_time_ms; max_records; max_payload_bytes; optional consumer_group plus consumer_id.200 OK with records encoded as payload_hex and diagnostics for the read page.400 invalid_start, invalid_page_size, or invalid_query; 404 stream_not_found; 500 internal_error.runtime_records.rs

Cursors And Inspection

Cursor and consumer group inspection routes
RouteRequestResponseErrorsEvidence
GET /v1/streams/{stream}/consumer-groups/{group}No body.Payload-free group description with cursors, in-flight work, delayed retries, and lag.400 invalid_request; 404 stream_not_found; 500 internal_error.runtime_inspection.rs
GET /v1/streams/{stream}/consumer-groups/{group}/leasesOptional include_completed=true|false.Payload-free delivery lease entries.400 invalid_query; 404 stream_not_found.runtime_inspection.rs
GET /v1/streams/{stream}/consumer-groups/{group}/delayedNo body.Payload-free delayed retry entries.400 invalid_query; 404 stream_not_found.runtime_inspection.rs
GET /v1/streams/{stream}/consumer-groups/{group}/replay-consumersNo body; populated by fetch requests that include consumer_group and consumer_id.Payload-free replay consumer activity observations.400 invalid_query; 404 stream_not_found.runtime_inspection.rs
GET /v1/streams/{stream}/consumer-groups/{group}/cursorsNo body.Cursor count and cursor state entries.400 invalid_query; 404 stream_not_found.runtime_inspection.rs
PUT /v1/streams/{stream}/consumer-groups/{group}/cursors/{cursor}JSON body with offset.Cursor commit acknowledgement.400 invalid_request; 409 write_not_allowed; 500 internal_error.runtime_cursors.rs
POST /v1/streams/{stream}/consumer-groups/{group}/cursors/{cursor}/rewindJSON body with offset and non-empty reason.Cursor rewind response and audit evidence.400 invalid_request; 409 write_not_allowed; 500 internal_error.runtime_cursors.rs

Shared Queue

Shared queue claim and delivery mutation routes
RouteRequestResponseErrorsEvidence
POST /v1/streams/{stream}/consumer-groups/{group}/claimsOptional start_offset, max_messages, and lease_timeout_millis.Claim result with subscription id, deliveries, next_offset, and delivery_count.400 invalid_request; 404 missing_stream; 429 quota_exceeded; 500 queue_state_persistence_failed.runtime_queue.rs
POST /v1/streams/{stream}/subscriptions/{subscription}/deliveries/{delivery}/ackOptional empty JSON object.Acknowledged offset, attempt, timestamp, and local queue-state acknowledgement.404 delivery_not_found; 409 lease_expired or lease_not_active.runtime_queue.rs
POST /v1/streams/{stream}/subscriptions/{subscription}/deliveries/{delivery}/nackreason and requeue.Policy action, redelivery decision, optional retry time, and optional dead-letter target.400 invalid_request; 404 delivery_not_found; 409 lease_expired or lease_not_active.runtime_queue.rs
POST /v1/streams/{stream}/subscriptions/{subscription}/deliveries/{delivery}/renewPositive extend_by_millis.Renewed lease body.400 invalid_request; 404 delivery_not_found; 409 lease_expired or lease_not_active.runtime_queue.rs
POST /v1/streams/{stream}/subscriptions/{subscription}/deliveries/{delivery}/retryreason and delay_millis.Retry availability timestamp.400 invalid_request; 404 delivery_not_found; 409 lease_expired or lease_not_active.runtime_queue.rs
POST /v1/streams/{stream}/subscriptions/{subscription}/deliveries/{delivery}/dead-letterdead_letter_stream and reason.Source offset and dead-letter offset.400 invalid_request; 404 missing_stream or delivery_not_found; 409 lease conflict.runtime_queue.rs

Replication

Replication status, worker, and target apply routes
RouteRequestResponseErrorsEvidence
GET /v1/replication/statusNo query string or body.Scheduler, transport, managed worker, checkpoint, target state, and operator controls.400 invalid_query.runtime_replication.rs
POST /v1/replication/workers/pollEmpty POST; requires runtime binding.Bounded poll report and transport status.400 invalid_payload; 409 replication_not_configured; runtime poll errors.runtime_replication.rs
POST /v1/replication/workers/pausestream, source_site, target_site, optional tenant, optional reason.Paused control and operator control summary.400 invalid_request; 404 replication_worker_not_found; 409 replication_not_configured.runtime_replication.rs
POST /v1/replication/workers/resumestream, source_site, target_site, optional tenant, optional reason.Resumed control and operator control summary.400 invalid_request; 404 replication_worker_not_found; 409 replication_not_configured.runtime_replication.rs
POST /v1/replication/target/applyBounded source-record metadata batch with source/target sites and policy metadata.Apply counts, next expected offset, target watermark, and newly applied origin offsets.400, 409, 413, or 500 replica_apply errors.runtime_replication.rs

Audit, Metrics, And Storage Admin

Operational and storage administration routes
RouteRequestResponseErrorsEvidence
GET /v1/audit/eventsOptional start_offset and max_records.JSON page of parsed audit event records.400 invalid_request, invalid_query, invalid_start_offset, or invalid_page_size; 500 internal_error.runtime_audit.rs
GET /v1/audit/exportOptional start_offset and max_records.application/x-ndjson audit export.400 invalid_request, invalid_query, invalid_start_offset, or invalid_page_size; 500 internal_error.runtime_audit.rs
GET /metricsNo query or body; requires --metrics-exposure http.text/plain metrics with OpenTelemetry names and Prometheus-safe aliases.400 invalid_query; 404 metrics_disabled; auth errors in protected modes.runtime_observability.rs
GET /streams/{stream}/retention/dry-runOptional max_bytes and max_age_ms.Non-mutating retention plan.400 invalid_retention_policy or invalid_query; 404 missing_stream.runtime_storage_admin.rs
GET /streams/{stream}/tiering/readinessOptional max_bytes and max_age_ms.Payload-free tiering readiness manifest.400 invalid_tiering_policy or invalid_query; 404 missing_stream; 500 tiering_manifest_failed.runtime_storage_admin.rs
GET /streams/{stream}/tiering/archive-manifestOptional max_bytes and max_age_ms.Archive-manifest JSON with storage-tiering content type.400 invalid_tiering_policy or invalid_query; 404 missing_stream; 500 tiering_manifest_failed.runtime_storage_admin.rs
GET /streams/{stream}/quarantineNo query or body.Payload-free quarantine incident list.400 invalid_query; 404 missing_stream; 500 quarantine storage errors.runtime_storage_admin.rs
POST /streams/{stream}/quarantine/{incident}/acknowledgeOptional acknowledged_by and note.Acknowledged quarantine incident.400 invalid_request; 404 quarantine_not_found; 409 write_not_allowed; 500 quarantine storage errors.runtime_storage_admin.rs

Limits

LimitValueApplies To
Default fetch page size100 recordsVersioned fetch, legacy fetch, audit events, audit export
Maximum fetch page size1000 recordsVersioned fetch, legacy fetch, audit events, audit export
Default queue claim count1 messageQueue claim route
Maximum queue claim count1000 messagesQueue claim route
Default queue lease timeout30000 msQueue claim route
Replica apply records1000 records/v1/replication/target/apply
Replica apply payload bytes64 MiB/v1/replication/target/apply aggregate payload_bytes metadata
Route token shapeNo slash, tab, or control charsconsumer group, cursor, subscription, and delivery path tokens
Metrics exposureopt-in--metrics-exposure http

Errors

StatusError CodeMeaningRecovery
400invalid_requestBody, route token, offset, or route-specific validation failed.Fix request fields and retry.
400invalid_queryQuery string is unsupported or malformed.Remove or correct the query string.
401authentication_required / authentication_failedProtected route credentials are missing or invalid.Supply configured credentials or use insecure-local intentionally.
403authorization_deniedAuthenticated caller lacks the required permission.Check tenant, stream, role grants, and auth mode.
404stream_not_found / missing_stream / not_foundStream or route is not visible to the caller.Create the stream, check tenant context, or use a documented route.
409lease_expired / lease_not_activeQueue mutation targeted stale or terminal delivery state.Claim work again or inspect queue state.
409replication_not_configuredReplication worker action needs a binding file.Start with --replication-binding-file.
429quota_exceededTenant quota rejected publish, queue, or replication egress work.Reduce request rate or review quota configuration.
503replication_unavailableRequired stream replication policy is not currently satisfied.Inspect /v1/replication/status before retrying.
500internal_errorStorage, registry, queue, audit, or replication state failed unexpectedly.Check broker logs, storage permissions, and disk health.

Examples

Create And Publish

Stream

curl -s -X PUT -H 'Content-Type: application/json' \
  --data '{}' \
  http://127.0.0.1:9101/v1/streams/orders

curl -s -X POST -H 'Content-Type: application/json' \
  --data '{"message_id":"msg-1","payload":"hello","durability_mode":"local-append"}' \
  http://127.0.0.1:9101/v1/streams/orders/records

Replay And Inspect

Records

curl -s \
  'http://127.0.0.1:9101/v1/streams/orders/records?start_offset=0&max_records=10&consumer_group=workers&consumer_id=replay-1'

curl -s \
  http://127.0.0.1:9101/v1/streams/orders/consumer-groups/workers/replay-consumers

Claim And Ack

Queue

curl -s -X POST -H 'Content-Type: application/json' \
  --data '{"max_messages":1,"lease_timeout_millis":30000}' \
  http://127.0.0.1:9101/v1/streams/orders/consumer-groups/workers/claims

curl -s -X POST -H 'Content-Type: application/json' \
  --data '{}' \
  http://127.0.0.1:9101/v1/streams/orders/subscriptions/sub-1/deliveries/del-1/ack

Operate

Ops

curl -s http://127.0.0.1:9101/v1/replication/status
curl -s 'http://127.0.0.1:9101/v1/audit/events?start_offset=0&max_records=100'
curl -s http://127.0.0.1:9101/metrics
curl -s 'http://127.0.0.1:9101/streams/orders/tiering/readiness?max_age_ms=86400000'

Safe Next Steps

  • Available now

    Run stream and queue quickstart

    Create streams, publish records, replay data, claim queue work, ack results, and inspect controlled-beta limits.

  • Available now

    Review Message Broker evidence

    Use the evidence index before strengthening stream, queue, auth, replication, or pilot-readiness claims.

  • Available: DOCS-032

    Read CLI and SDK reference

    Lifecycle flags, diagnostics, data CLI, remote CLI, and Rust SDK publish and replay entry points.

  • Available: DOCS-040

    Compare route and auth scope

    Separate controlled-beta routes from auth, replication, queue, CLI, SDK, and Kafka protocol boundaries.