curl --request POST \
  --url https://api.periskope.app/v1/message/broadcast \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "chat_id": "919537851844@c.us",
  "message": "Hello World",
  "scheduled_at": "2025-02-06T11:21:00Z",
  "delay": 10
}'
{
  "broadcast_id": "b25192d5-2370-4a69-b844-aae5e2bfae92"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-phone
string

Please provide the number of the phone you want to call with this API in the header. The number must be in country code + number format without any characters or spaces, e.g. 919876543210; Alternatively, provide the phone_id (phone-xxxxxxxxxxxx) in the header

Example:

"918527184400"

Body

application/json
chat_ids
string[]
required
  • Array of all the recipients
  • For groups, enter the chat_id of the group. This will be a string that ends with @g.us
  • For 1-1 chats, enter the country_code + number of the recipient e.g. 919537851844@c.us (The @c.us is optional)
Example:

"919537851844@c.us"

message
string
  • The text body or caption. You can use basic markdown formatting supported by WhatsApp e.g. * for bold, and _ for italic, etc.
Example:

"Hello World"

scheduled_at
string
  • UTC date and time when the message should be sent, in ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ). Example: 2025-02-06T11:21:00Z
Example:

"2025-02-06T11:21:00Z"

delay
number
  • Time interval between each broadcasted message in seconds. Defaults to 1 second
Example:

10

media
object
  • Required to send a media object. You can send a public URL of the media content, or the base64 data of the media
  • Media can be a document, image, video or audio
    • url - public URL that hosts the content to be sent
    • filedata - Raw bytes of the file, represented in base64
    • type - The type of the media. Can be image, video, document or audio
    • filename - The filename of the media. Only applicable for document messages
poll
object
  • pollName - The question or title of the poll
    • pollOptions - Raw bytes of the file, represented in base64
    • options - Additional options to be sent with the poll
      • allowMultipleAnswers - Boolean. When set to true, respondents can select multiple options
      • pollId - Optional unique identifier of the poll. Useful when sending it across multiple chats
reply_to
string
  • To reply to a message, add the message_id in this field

Response

200 - application/json
200 OK

The response object contains the broadcast_id

You can check the status and logs of the broadcast jobs from the /queue/jobs endpoint

The broadcast_id can also be mapped in the message object against the broadcast_id (same key)