Discord

Post a Discord message now, or schedule one

Changed on

Post a message to a channel immediately, schedule it for later, or start a recurring series (e.g. a weekly announcement).

  • Now: omit scheduled_for — the response is the final sent / failed record.
  • Scheduled: set scheduled_for.
  • Recurring: set scheduled_for (first fire) and recurrence (e.g. {"frequency": "weekly", "end_type": "never"}).

Idempotency-Key is required so a retry can't double-post. X-Dry-Run: true validates without posting or scheduling. Attach up to 10 images / files via images (each base64-encoded, ≤ 8MB) — e.g. a video-breakdown image.

post/discord/messages

Request

  • Base URL
    https://api.reacherapp.com/public/v1
  • URL
    https://api.reacherapp.com/public/v1/discord/messages
  • Auth
    API key in header x-api-key and API key in header x-shop-id

Headers

Idempotency-Keystring nullable
X-Dry-Runstring nullable

Request body

channel_idstring required

Target Discord channel id.

contentstring required

Message body (≤ 2000 chars).

titlestring nullable

Optional bold header rendered above the body.

scheduled_forstring date-time nullable

When to post (ISO 8601). Omit to post immediately.

timezonestring nullable

IANA tz for the schedule (defaults to the shop's).

campaign_idinteger nullable

Optional campaign to associate the post with.

sender_user_idstring nullable

Discord user id of a member of the linked server to post AS — the message shows their server nickname and avatar instead of the brand's (Discord still marks it APP). Omit to post as the brand. Bots and non-members are rejected with 400.

Response

Successful Response

dry_runboolean

Changes

    • breaking

      response property data/created_at list-of-types was widened by adding types null to media type application/json of response 201

    • breaking

      response property data/updated_at list-of-types was widened by adding types null to media type application/json of response 201

    • breaking

      the // response's property format changed from date-time to no format for status

    • breaking

      the // response's property format changed from date-time to no format for status

    • info

      added the new optional request property

    • info

      added the optional property / to the response with the status