Vultr Message Center (1.0.0)

Download OpenAPI specification:

Deliveries

Create Delivery

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 /deliveries/{uuid} endpoint to check the delivery status.

Authorizations:
API Key
Request Body schema: application/json
required
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 X-Vultr-Signature header as sha256=<hex digest>.

Responses

Request samples

Content type
application/json
{}

Get Delivery Status

Retrieve the status of a delivery by its UUID.

Authorizations:
API Key
path Parameters
uuid
required
string <uuid>

The UUID of the delivery.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "url": "string",
  • "event_type": "string",
  • "payload": { },
  • "status": "pending",
  • "retry_count": 0,
  • "last_error": "string",
  • "created_at": "string",
  • "updated_at": "string"
}

Health

Health Check

View the current status of the message center service.

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

Queue Consumer

Start Log Queue Consumption

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.

path Parameters
queue
required
string^[a-zA-Z0-9._-]+$

The RabbitMQ queue name to consume.

Request Body schema: application/json
optional
prefix
string^[a-zA-Z0-9._-]+$

Prefix to tag log entries with. Defaults to the queue name.

Responses

Request samples

Content type
application/json
{
  • "prefix": "log"
}

Response samples

Content type
application/json
{
  • "status": "accepted",
  • "queue": "log_queue",
  • "prefix": "log",
  • "message": "Queue consumption scheduled. Use the log-consumer worker to process."
}

Logs

Get Streaming Logs

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:

  • If the background consumer has already flushed the logs to the database, all entries are returned as a single JSON response (status: complete).
  • If the consumer is still buffering messages in Redis, a text/event-stream (SSE) response is returned so the client can read entries in near real-time.
  • If neither Redis nor the database has any data, a 404 is returned.
path Parameters
prefix
required
string^[a-zA-Z0-9._-]+$

The log type prefix (e.g. order).

id
required
string^[a-zA-Z0-9._-]+$

The entity identifier (e.g. order UUID). Also used as the queue suffix.

Responses

Response samples

Content type
{
  • "prefix": "order",
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "queue": "order-550e8400-e29b-41d4-a716-446655440000",
  • "status": "complete",
  • "count": 42,
  • "logs": [
    ]
}