System DMs
A system DM broadcast delivers one identical message, authored by the system account, to each supplied recipient. A recipient receives a normal message in a normal direct message channel.
The Jobs resource reports delivery progress. Cancelling that job stops an in-flight broadcast.
Create system DM broadcast
Section titled “Create system DM broadcast”POST/v1/admin/system-dmsQueues one message for delivery to every supplied recipient. Requires system_dm:send. Returns the number of recipients queued.
JSON body
Section titled “JSON body”| Field | Type | Description |
|---|---|---|
| content1 | string | The message delivered to every recipient (1-4000 characters) |
| user_ids2 | array[snowflake] | The recipients of the broadcast (1-10,000 entries) |
1 Content with no visible character is accepted and then fails for every recipient
2 Fluxer keeps duplicate IDs, so a repeated recipient receives the message once per occurrence. An ID naming no account is accepted here and skipped at delivery time
Response body
Section titled “Response body”| Field | Type | Description |
|---|---|---|
| recipient_count | integer | The number of entries in the submitted user_ids array |
Response
Section titled “Response”| Status | Body | Condition |
|---|---|---|
| 200 | response body | The delivery job was queued |
| 500 | error response | The ledger row or the queue message could not be written |
Side effects
Section titled “Side effects”For each recipient the job opens the direct message channel between the system account and that recipient, then sends the message. Channel Create reaches a recipient only when the channel is newly created or was closed on that recipient’s side. A recipient who already has the channel open observes only Message Create.
The job opens the channel with no admission check, so a recipient who has never interacted with the system account still receives the message. It also skips direct message spam mitigation. On Create private channel that mitigation puts a caller holding the SPAMMER flag into a channel only that caller sees.
Before each recipient the job checks for cancellation, so cancelling stops further delivery and leaves sent messages in place. The job then settles as cancelled.
The operation records one Admin audit entry with the action system_dm.send, the target type system_dm, and the target ID 0. Its metadata has recipient_count and content_length as decimal strings, and the content itself is not recorded.
Rate limit
Section titled “Rate limit”100 requests per minute for each authenticated user, on the admin:message:operation bucket.