Skip to main content
POST
Publish a notification
Requires the IAM action notifications:Publish. See NOTIFICATIONS permissions for the full list, what each one covers, and an example policy.

Authorizations

Authorization
string
header
required

An OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. This is the recommended way to authenticate.

Get one by exchanging a service account's access key pair at POST /v1/oauth/token with grant_type=client_credentials. It is the standard client-credentials grant, so any OAuth-aware library will obtain and refresh it for you.

Tokens last an hour by default. The same access key pair is separately your AWS SigV4 credential for the S3-compatible object endpoint, which speaks nothing else.

Headers

Idempotency-Key
string

Optional client-generated key that makes a create replay-safe. Retrying a request with the same key returns the original outcome verbatim instead of creating a duplicate resource. Reusing a key with a different request body is rejected (422); a request whose key is still being processed returns 409. Records are honored for 24 hours. Use a UUID or similarly unique token.

Maximum string length: 255

Path Parameters

topic_id
string<uuid>
required
Example:

"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d"

Body

application/json
message
string
required

The payload. Up to 256 KiB.

Maximum string length: 262144
Example:

"osd.22 reports a firmware impending failure"

subject
string

Used as the email subject. No line breaks.

Maximum string length: 100
Example:

"Disk pressure on europa"

message_structure
enum<string>

Omit to deliver message verbatim to every protocol. Set to json to have message read as an object of protocol keys (default, email, https, http), letting one publish carry a different payload per transport. A default key is required — it is what a protocol with no explicit entry gets.

Available options:
,
json
Example:

"json"

attributes
object

Typed attributes carried with a notification and matched against subscription filter policies. At most 20 attributes; values at most 1024 bytes. Binary attributes are not accepted — they cannot be filtered on.

Example:

Response

Notification accepted for delivery.

message_id
string<uuid>
required
Example:

"019400aa-bbbb-7ccc-8ddd-eeeeffff0000"