Skip to content

DashboardApi

blehnen edited this page Mar 30, 2026 · 6 revisions

Dashboard API Reference

All endpoints are under /api/v1/dashboard. When Swagger is enabled, interactive documentation is available at /swagger.

Connections
GET /api/v1/dashboard/connections

Returns all registered connections with their queue counts.

GET /api/v1/dashboard/connections/{connectionId}/queues

Returns all queues for a specific connection.

GET /api/v1/dashboard/connections/{connectionId}/jobs

Returns all scheduled jobs for a connection.

Queue Status
GET /api/v1/dashboard/queues/{queueId}/status

Returns message counts by status:

Field Description
waiting Messages waiting to be processed
processing Messages currently being processed
error Messages that failed processing
total Total message count
GET /api/v1/dashboard/queues/{queueId}/features

Returns which features are enabled for the queue (priority, status, heartbeat, etc.).

Messages
GET /api/v1/dashboard/queues/{queueId}/messages

Returns a paged list of messages.

Parameter Default Description
pageIndex 0 Zero-based page index
pageSize 25 Number of messages per page
status null Filter by status (Waiting, Processing, Error, Processed)
GET /api/v1/dashboard/queues/{queueId}/messages/count

Returns the total message count, optionally filtered by status.

GET /api/v1/dashboard/queues/{queueId}/messages/{messageId}

Returns a single message by ID.

GET /api/v1/dashboard/queues/{queueId}/messages/{messageId}/body

Returns the decoded message body and type information. If the queue uses message interceptors, the same interceptors must be registered on the dashboard to decode the body. See Dashboard Configuration.

GET /api/v1/dashboard/queues/{queueId}/messages/{messageId}/headers

Returns the deserialized message headers.

Stale Messages
GET /api/v1/dashboard/queues/{queueId}/messages/stale

Returns messages with stale heartbeats (Processing status, no heartbeat within the threshold).

Parameter Default Description
thresholdSeconds 60 Heartbeat age threshold in seconds
pageIndex 0 Zero-based page index
pageSize 25 Number of messages per page
POST /api/v1/dashboard/queues/{queueId}/messages/{messageId}/reset

Resets a stale message from Processing back to Waiting status. Returns 204 on success, 404 if not found.

POST /api/v1/dashboard/queues/{queueId}/messages/reset-all

Resets all stale messages from Processing back to Waiting status. Returns the count of reset messages.

Errors
GET /api/v1/dashboard/queues/{queueId}/errors

Returns a paged list of error messages.

Parameter Default Description
pageIndex 0 Zero-based page index
pageSize 25 Number of messages per page
GET /api/v1/dashboard/queues/{queueId}/messages/{messageId}/retries

Returns the error retry history for a specific message.

POST /api/v1/dashboard/queues/{queueId}/messages/{messageId}/requeue

Moves an error message back to Waiting status for reprocessing. Returns 204 on success, 404 if not found.

POST /api/v1/dashboard/queues/{queueId}/errors/requeue-all

Requeues all error messages back to Waiting status. Returns the count of requeued messages.

DELETE /api/v1/dashboard/queues/{queueId}/errors

Deletes all error messages for the queue. Returns the count of deleted messages.

Message Operations
DELETE /api/v1/dashboard/queues/{queueId}/messages/{messageId}

Deletes a single message. Returns 204 on success, 404 if not found.

PUT /api/v1/dashboard/queues/{queueId}/messages/{messageId}/body

Updates a message body. The body is re-encoded using the queue's serialization and interceptors.

Request body:

{
  "body": "<JSON string>"
}
Response Meaning
204 Updated successfully
400 Invalid request
404 Message not found
409 Message is currently being processed
Configuration
GET /api/v1/dashboard/queues/{queueId}/configuration

Returns the raw queue configuration as JSON.

Maintenance
GET /api/v1/dashboard/queues/{queueId}/maintenance

Returns the maintenance service status for the queue. Only meaningful when HostMaintenance is enabled for the queue in the dashboard configuration. See Maintenance Mode.

Field Description
hostMaintenance Whether the dashboard is configured to host maintenance for this queue
isRunning Whether the maintenance service is currently running
lastRunUtc UTC timestamp of the last completed maintenance run (null if not yet run)
Consumers

Consumer tracking endpoints are available when EnableConsumerTracking is enabled (default: true). See Dashboard Client for a typed client that manages registration and heartbeats automatically.

POST /api/v1/dashboard/consumers/register

Registers a consumer with the dashboard. Returns a ConsumerId and the recommended HeartbeatIntervalSeconds.

Request body:

{
  "queueName": "OrderQueue",
  "machineName": "WORKER-01",
  "processId": 12345,
  "friendlyName": "Worker-1"
}
POST /api/v1/dashboard/consumers/heartbeat

Sends a heartbeat for a registered consumer. Should be called at the interval returned during registration.

Request body:

{
  "consumerId": "guid"
}
DELETE /api/v1/dashboard/consumers/{consumerId}

Unregisters a consumer.

GET /api/v1/dashboard/consumers

Returns all active consumers. Optionally filter by queue with ?queueId={guid}.

GET /api/v1/dashboard/consumers/count

Returns a dictionary of consumer counts keyed by queue ID.

Message history
Method URL Description
GET /api/v1/dashboard/queues/{queueId}/history?pageIndex=0&pageSize=25&status= Paged list of history records, optionally filtered by status (0=Enqueued, 1=Processing, 2=Complete, 3=Error, 4=Deleted, 5=Expired)
GET /api/v1/dashboard/queues/{queueId}/history/{messageId} History record for a specific message. Returns 404 if not found.
GET /api/v1/dashboard/queues/{queueId}/history/count?status= Total count of history records, optionally filtered by status
DELETE /api/v1/dashboard/queues/{queueId}/history?olderThanDays=30 Purge history records older than the specified number of days (default 30). Returns { "deleted": N }.

History endpoints return data only when IHistoryConfiguration.Enabled = true on the queue. When disabled, list returns empty, count returns 0, and purge returns 0.

See Message History for configuration details.

Message cancellation
Method URL Description
POST /api/v1/dashboard/queues/{queueId}/messages/{messageId}/cancel Request cancellation of a running message. Returns 200 if cancellation was requested, 404 if the message is not currently being processed, 409 if no consumer is running in-process.

Cancellation is cooperative: the message handler must check workerNotification.MessageCancellation.Token for it to take effect. Only works when the dashboard and consumer run in the same process.

Clone this wiki locally