Download OpenAPI specification:
Accepts a delivery request. The service will persist the delivery to the database, then asynchronously call the customer's endpoint via HTTPS POST with an HMAC-SHA256 signature.
The response is 201 with no body — the delivery is queued and will be attempted asynchronously.
Use the GET /v1/deliveries/{id} endpoint to check the delivery status.
| url required | string <uri> The customer's endpoint URL. Must be HTTPS. |
| event_type required | string The type of event that triggered the delivery. |
required | object The JSON payload to send to the customer's endpoint. |
| secret required | string The HMAC secret used to sign the payload. The signature is sent in the |
{- "event_type": "vm.provisioned",
- "payload": {
- "id": "123456789",
- "label": "my-server",
- "main_ip": "1.2.3.4",
- "status": "active"
}, - "secret": "whsec_abc123"
}{- "http_status_code": 422,
- "message": "url is required",
- "internal_message": "url is required"
}Retrieve the status of a delivery by its UUID.
| id required | string <uuid> The UUID of the delivery. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "url": "string",
- "event_type": "string",
- "payload": { },
- "status": "pending",
- "retry_count": 0,
- "max_retries": 10,
- "last_response": {
- "status_code": 0,
- "body": "string"
}, - "last_error": "string",
- "next_retry_at": "string",
- "created_at": "string",
- "updated_at": "string"
}Schedules background consumption of a RabbitMQ queue. Messages are buffered into Redis and flushed to the logs database table when the queue is deleted or an [END_OF_STREAM] sentinel message is received.
Returns 202 Accepted immediately. Actual consumption runs in a background worker process.
| queue required | string^[a-zA-Z0-9._-]+$ The RabbitMQ queue name. |
| prefix | string^[a-zA-Z0-9._-]+$ Prefix to tag log entries with. Defaults to the queue name. |
{- "prefix": "log"
}{- "status": "accepted",
- "queue": "log_queue",
- "prefix": "log",
- "message": "Queue consumption started. Logs will be buffered to Redis and flushed to the database on completion."
}Opens a Server-Sent Events (SSE) stream that consumes messages directly from
the specified RabbitMQ queue in real-time. Each message is delivered as an
SSE message event with the message body in the data field.
The stream stays open until the client disconnects, the queue is deleted, or the idle timeout (default 300s) is reached.
| queue required | string^[a-zA-Z0-9._-]+$ The RabbitMQ queue name. |
{- "http_status_code": 422,
- "message": "url is required",
- "internal_message": "url is required"
}Retrieves queue statistics from the RabbitMQ management API, including message counts, consumer count, and idle state.
| queue required | string^[a-zA-Z0-9._-]+$ The RabbitMQ queue name. |
{- "queue": "log_queue",
- "vhost": "message-center-dev",
- "messages": 0,
- "messages_ready": 0,
- "messages_unacknowledged": 0,
- "consumers": 1,
- "durable": true,
- "idle_since": "2026-08-27T05:52:36.510+00:00"
}Retrieve log entries for a given entity. The {prefix} identifies the log type
(e.g. order) and {id} is the entity identifier (e.g. the order UUID).
The RabbitMQ queue name follows the convention {prefix}-{id}.
Behaviour:
status: complete).text/event-stream
(SSE) response is returned so the client can read entries in near real-time.| prefix required | string^[a-zA-Z0-9._-]+$ The log type prefix (e.g. |
| id required | string^[a-zA-Z0-9._-]+$ The entity identifier (e.g. order UUID). Also used as the queue suffix. |
{- "prefix": "order",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "queue": "order-550e8400-e29b-41d4-a716-446655440000",
- "status": "complete",
- "count": 42,
- "logs": [
- {
- "content": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}Serves an HTML page with an Alpine.js-based log viewer that connects to
the SSE stream at /v1/log/{prefix}/{id} and displays log entries in
real-time.
| prefix required | string^[a-zA-Z0-9._-]+$ The log type prefix (e.g. |
| id required | string^[a-zA-Z0-9._-]+$ The entity identifier (e.g. order UUID). Also used as the queue suffix. |
{- "http_status_code": 422,
- "message": "url is required",
- "internal_message": "url is required"
}