Skip to content

Publish a message (/api/v1)

POST
/api/v1/messages
curl --request POST \
--url http://localhost:8080/api/v1/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "payment-received", "correlationKey": "A-1042", "timeToLive": 60000, "variables": { "paid": true } }'
Available inEmbeddedBundledCluster
AuthAuthenticated Bearer token
x-tenant-id
string
>= 1 characters

Tenant selection. A principal of one tenant may omit it, and if sent it must name that tenant. A principal that may act in several tenants sends it on every request.

Idempotency-Key
string
>= 1 characters <= 200 characters
Media typeapplication/json
object
name
required
string
correlationKey
required
string
timeToLive
integer format: int64
0
messageId
string
variables
object
key
additional properties
any
tenantId
string
Example
{
"name": "payment-received",
"correlationKey": "A-1042",
"timeToLive": 60000,
"variables": {
"paid": true
}
}

Message published

Media typeapplication/json
object
key
additional properties
any
Examplegenerated
{}

Invalid request

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:invalid-argument",
"title": "Bad Request",
"status": 400,
"detail": "The request is malformed",
"instance": "/api/v1/messages"
}

Authentication required

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "A valid bearer credential is required",
"instance": "/api/v1/messages"
}
WWW-Authenticate
string

The caller lacks the required permission.

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:forbidden",
"title": "Forbidden",
"status": 403,
"detail": "The principal lacks the action this route requires",
"instance": "/api/v1/messages"
}

Tenant-scoped resource not found

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:not-found",
"title": "Not Found",
"status": 404,
"detail": "The requested resource does not exist",
"instance": "/api/v1/messages"
}

Idempotency conflict

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:conflict",
"title": "Conflict",
"status": 409,
"detail": "The idempotency key is already associated with another request",
"instance": "/api/v1/messages"
}

Authenticated request exceeds its configured bound

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:payload-too-large",
"title": "Payload Too Large",
"status": 413,
"detail": "The request exceeds the configured size limit",
"instance": "/api/v1/messages"
}

Tenant quota exhausted

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:quota-exhausted",
"title": "Quota Exhausted",
"status": 429,
"detail": "The tenant active-instance quota is exhausted",
"instance": "/api/v1/messages"
}

Non-leaking internal failure

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:internal",
"title": "Internal Server Error",
"status": 500,
"detail": "The request could not be completed",
"instance": "/api/v1/messages"
}

The operation is on the reviewed allow-list of what this deployment mode cannot serve.

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:mode-not-supported",
"title": "Mode Not Supported",
"status": 501,
"detail": "POST /api/v1/messages is not supported in embedded mode",
"instance": "/api/v1/messages",
"mode": "embedded"
}

Backpressure or dependency unavailable

Media typeapplication/problem+json
object
type
required
string
/^urn:bpm:error:/
title
required
string
status
required
integer
>= 400 <= 599
detail
required
string
instance
required

The request path.

string
mode

Present only on mode-not-supported. It names the engine’s mode.

string
Example
{
"type": "urn:bpm:error:unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "The required engine service is not ready",
"instance": "/api/v1/messages"
}