Broadcasts

Broadcast APIs

Overview

Create, launch, and analyze outbound broadcasts.

Broadcast properties

PropertyTypeDescription
workspaceIdnumber

The workspace ID.

idstring

The broadcast ID.

namestring

The broadcast name.

integrationIdstring

The integration (Channel) ID.

statestring

The broadcast state, it can be 'draft', 'scheduled', 'inProgress', 'completed', or 'failed'.

templateNamestring

The WhatsApp template name used to send the broadcast.

templateLangstring

The WhatsApp template language.

templateComponentsjson

The WhatsApp template components.

clientTagsstring[]

The client tags used to target a specific group of clients.

clientStageIdstring

The client stage ID used to target a specific stage of clients.

countrystring

The country used to target clients.

scheduledAtDateTime

The scheduled timestamp. If it's empty, the broadcast will be sent in case it's launched.

startedAtDateTime

The started timestamp.

completedAtDateTime

The completed timestamp. If it's empty, the broadcast is still in progress.

createdAtDateTime

The created timestamp.

totalCountnumber

The total number of clients that will receive the broadcast.

failedCountnumber

The number of failed deliveries.

errorstring

The error message if the broadcast failed.

List Broadcasts API

List the broadcasts in a workspace using supported filters.

This endpoint supports pagination. See Pagination for more information.

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

namestring

The name.

integrationIdstring

The integration (Channel) ID.

stateBroadcastState

Filter by broadcast state.

templateNamestring

The template name.

Request & Response

POST https://gateway.bcrumbs.net/core/gq
query broadcasts($input: BroadcastsInput!) {
  broadcasts(input: $input) {
    nodes {
      id
      name
      state
      templateName
      integrationId
      createdAt
    }
    pageInfo {
      hasNextPage
      endCursor
      count
    }
  }
}
 
input BroadcastsInput {
  workspaceId: Int! # Workspace ID.
  name: String # Filter by broadcast name.
  integrationId: ID # Filter by integration/channel ID.
  state: BroadcastState # Filter by broadcast state.
  templateName: String # Filter by template name.
}

The query above returns JSON structured like this:

{
  "data": {
    "broadcasts": {
      "nodes": [
        {
          "id": "id_123",
          "name": "sample",
          "state": "draft",
          "templateName": "sample",
          "integrationId": "id_123",
          "createdAt": "2026-03-16T00:00:00.000Z"
        }
      ],
      "pageInfo": {
        "hasNextPage": false,
        "endCursor": "cursor_123",
        "count": 1
      }
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"broadcasts","variables":{"input":{"workspaceId":12,"name":"sample","integrationId":"id_123","state":"VALUE","templateName":"sample"}},"query":"query broadcasts($input: BroadcastsInput!) {\\n  broadcasts(input: $input) {\\n    nodes {\\n      id\\n      name\\n      state\\n      templateName\\n      integrationId\\n      createdAt\\n    }\\n    pageInfo {\\n      hasNextPage\\n      endCursor\\n      count\\n    }\\n  }\\n}"}'

Create Broadcast API

Create a broadcast.

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

namestring

Required. The name.

integrationIdstring

Required. The integration (Channel) ID.

clientTagsstring[]

Target tags.

clientStageIdstring

Target stage.

countrystring

Target country.

templateNamestring

Required. The template name.

templateLangstring

The template language.

templateComponentsJSON

The template component variables.

scheduledAtDateTime

Schedule date/time (optional).

Request & Response

POST https://gateway.bcrumbs.net/core/gq
mutation createBroadcast($input: BroadcastCreateInput!) {
  createBroadcast(input: $input) {
    id
    name
    state
    templateName
    integrationId
    createdAt
  }
}
 
input BroadcastCreateInput {
  workspaceId: Int! # Workspace ID.
  name: String! # Broadcast name.
  integrationId: ID! # Integration/channel ID.
  clientTags: [String!] # Target tags.
  clientStageId: String # Target stage.
  country: String # Target country.
  templateName: String! # Template name.
  templateLang: String # Template language.
  templateComponents: JSON # Template component variables.
  scheduledAt: DateTime # Schedule date/time (optional).
}

The mutation above returns JSON structured like this:

{
  "data": {
    "createBroadcast": {
      "id": "id_123",
      "name": "sample",
      "state": "draft",
      "templateName": "sample",
      "integrationId": "id_123",
      "createdAt": "2026-03-16T00:00:00.000Z"
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"createBroadcast","variables":{"input":{"workspaceId":12,"name":"sample","integrationId":"id_123","clientTags":["sample"],"clientStageId":"sample","country":"sample","templateName":"sample","templateLang":"sample","templateComponents":{"key":"value"},"scheduledAt":"2026-03-16T00:00:00.000Z"}},"query":"mutation createBroadcast($input: BroadcastCreateInput!) {\\n  createBroadcast(input: $input) {\\n    id\\n    name\\n    state\\n    templateName\\n    integrationId\\n    createdAt\\n  }\\n}"}'

Launch Broadcast API

Launch a broadcast.

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

idstring

Required. The ID.

Request & Response

POST https://gateway.bcrumbs.net/core/gq
mutation launchBroadcast($input: BroadcastLaunchInput!) {
  launchBroadcast(input: $input) {
    id
    name
    state
    startedAt
    completedAt
    failedCount
  }
}
 
input BroadcastLaunchInput {
  workspaceId: Int! # Workspace ID.
  id: ID! # Broadcast ID.
}

The mutation above returns JSON structured like this:

{
  "data": {
    "launchBroadcast": {
      "id": "id_123",
      "name": "sample",
      "state": "inProgress",
      "startedAt": "2026-03-16T00:00:00.000Z",
      "completedAt": null,
      "failedCount": 0
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"launchBroadcast","variables":{"input":{"workspaceId":12,"id":"id_123"}},"query":"mutation launchBroadcast($input: BroadcastLaunchInput!) {\\n  launchBroadcast(input: $input) {\\n    id\\n    name\\n    state\\n    startedAt\\n    completedAt\\n    failedCount\\n  }\\n}"}'

Broadcast Report API

Get daily broadcast usage per integration (UTC calendar days). Each node is one workspace + integration + reportDate. Counts aggregate messages for broadcasts that started that UTC day (with an edge case for immediate failures without startedAt). successCount equals sentCount + deliveredCount + readCount (read includes played).

AttributeTypeDescription
workspaceIdnumber

Required. The workspace ID.

integrationIdstring

The integration (Channel) ID.

startDateDateTime

Required. Range start (inclusive), interpreted as UTC start-of-day.

endDateDateTime

Required. Range end (inclusive), interpreted as UTC start-of-day.

Request & Response

POST https://gateway.bcrumbs.net/core/gq
query broadcastReport($input: BroadcastReportInput!) {
  broadcastReport(input: $input) {
    nodes {
      id
      reportDate
      sentCount
      deliveredCount
      readCount
      pendingCount
      successCount
      failedCount
      integrationId
      createdAt
    }
  }
}
 
input BroadcastReportInput {
  workspaceId: Int! # Workspace ID.
  integrationId: ID # Filter by integration/channel ID.
  startDate: DateTime! # Start date of report range.
  endDate: DateTime! # End date of report range.
}

The query above returns JSON structured like this:

{
  "data": {
    "broadcastReport": {
      "nodes": [
        {
          "id": "id_123",
          "reportDate": "2026-03-16T00:00:00.000Z",
          "sentCount": 5,
          "deliveredCount": 30,
          "readCount": 5,
          "pendingCount": 0,
          "successCount": 40,
          "failedCount": 2,
          "integrationId": "id_123",
          "createdAt": "2026-03-17T00:05:12.000Z"
        }
      ]
    }
  }
}
You can check our playground to explore and interact with GraphQL APIs easily and intuitively with real-time documentation.

Programming language examples

curl -X POST 'https://gateway.bcrumbs.net/core/gq' \
  -H 'authorization: API-KEY' \
  -H 'content-type: application/json' \
  -d '{"operationName":"broadcastReport","variables":{"input":{"workspaceId":12,"integrationId":"id_123","startDate":"2026-03-16T00:00:00.000Z","endDate":"2026-03-16T00:00:00.000Z"}},"query":"query broadcastReport($input: BroadcastReportInput!) {\\n  broadcastReport(input: $input) {\\n    nodes {\\n      id\\n      reportDate\\n      sentCount\\n      deliveredCount\\n      readCount\\n      pendingCount\\n      successCount\\n      failedCount\\n      integrationId\\n      createdAt\\n    }\\n  }\\n}"}'