Bifrost Bifrost
POSThttps://api.dev.bifrostgaming.com/v1/graphql

guildSendMessageToAll

v1

Broadcast a single chat line to every player currently on the target server. The message is delivered as the standard moderator chat message (the same wire shape guildMessagePlayer uses) — not the SERVER BROADCAST screen overlay. Maximum 200 characters; messages are trimmed before length validation. Not idempotent: repeated calls re-broadcast.

Operation Type

Mutation

Rate Limit: 12 requests per minute per server

Each call fans out one MessagePlayer per player currently on the server. Internally that counts as one request against this endpoint, not one-per-player.

Important usage notes

  • Use this when you want every player on the server to see the same chat line — for example to announce a round-restart, an event start, or a server-wide note from your bot.
  • Players see the message in their standard chat (the same channel guildMessagePlayer uses). This is intentionally distinct from ServerBroadcast, which renders the screen-overlay banner and is not exposed via OAuth.
  • The mutation is not idempotent. If your caller retries on failure, it can re-broadcast. Dedupe at your layer if exactly-once delivery matters.
  • playersNotified counts successful NATS publishes — a published message is handed to the rconworker for delivery. Network or RCON-side failures after the publish are not reflected in this number; check moderator-action logs for delivery-time outcomes.

Input Fields

FieldTypeRequiredDescription
serverIdID!RequiredThe server ID to broadcast on.
messageString!RequiredThe chat message text. Trimmed of leading/trailing whitespace and limited to 200 characters after trimming.

Code Examples

curl -X POST https://api.dev.bifrostgaming.com/v1/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "query": "mutation GuildSendMessageToAll($input: GuildSendMessageToAllInput!) { guildSendMessageToAll(input: $input) { success message playersNotified error timestamp } }",
    "variables": {
      "input": {
        "serverId": "YOUR_SERVER_ID",
        "message": "Round restart in 5 minutes — finish strong!"
      }
    }
  }'

Postman Collection

Download a ready-to-use Postman collection for this endpoint. Import it into Postman to start testing immediately.

How to import into Postman
  1. Open Postman and click Import (top-left)
  2. Drag and drop the downloaded .json file, or click Upload Files and select it
  3. Click Import to confirm
  4. The collection appears in your sidebar — expand it and select the request
  5. In the Body tab, update the placeholder values (your-partner-id, etc.) with your actual credentials
  6. Click Send

The collection uses Postman's GraphQL body type, which provides syntax highlighting and variable editing. Make sure your Postman version is 7.2+ for GraphQL support.

Success Response200

{
  "data": {
    "guildSendMessageToAll": {
      "success": true,
      "message": "Sent to 64 player(s).",
      "playersNotified": 64,
      "error": null,
      "timestamp": "2026-05-26T16:00:00.000Z"
    }
  }
}

Error Responses

Response Fields

FieldTypeRequiredDescription
successBooleanRequiredTrue when the broadcast was attempted (false on validation / lookup errors).
messageStringRequiredHuman-readable status string.
playersNotifiedIntRequiredCount of successful NATS publishes. A successful publish hands the message off to the worker for delivery; it does not guarantee in-game receipt.
errorStringOptionalError code on failure: MESSAGE_EMPTY, MESSAGE_TOO_LONG, GAMESTATE_UNAVAILABLE, GAMESTATE_PARSE_ERROR. Null on success.
timestampStringRequiredISO 8601 timestamp of when the mutation ran.
Shrapnelworks Logo

A Shrapnelworks product