Cancel broadcasts

Stops a scheduled or sending broadcast and answers it.

POST /v1/marketing/broadcasts/{id}/cancel

Addresshttps://api.hanzo.ai/v1/marketing/broadcasts/{id}/cancel
MethodPOST
Operationpost_marketing_broadcasts_by_id_cancel
AuthAuthorization: Bearer $HANZO_API_KEY

Stops a scheduled or sending broadcast and answers it. Who it already reached stays recorded.

Org admin only.

Request

1 field.

FieldInTypeRequiredDescription
idpathstringyesID is the broadcast's id.

Response

StatusBodyMeaning
200marketing.Broadcastok
defaultproblem-detailsrefused

200 body — 34 fields.

FieldInTypeAlwaysDescription
audiencebodyinteger (int64)—Audience is how many subscribers it selected when it started.
createdAtbodyinteger (int64)—CreatedAt and UpdatedAt are unix seconds.
errorbodystring—Error is why a failed broadcast stopped.
filterbodymarketing.Filter—
filter.basisbodystring—Basis keeps subscribers by the consent basis recorded for them: explicit, legitimate_interest or unverified.
filter.clickedAfterbodyinteger (int64)—ClickedAfter keeps subscribers who clicked a link at or after this time.
filter.confirmedAfterbodyinteger (int64)—ConfirmedAfter and ConfirmedBefore bound when the subscription was confirmed, unix seconds, inclusive.
filter.confirmedBeforebodyinteger (int64)—ConfirmedBefore is the upper bound of ConfirmedAfter's range.
filter.createdAfterbodyinteger (int64)—CreatedAfter and CreatedBefore bound when the subscriber joined the list, unix seconds, inclusive.
filter.createdBeforebodyinteger (int64)—CreatedBefore is the upper bound of CreatedAfter's range.
filter.fieldbodystring—Field names a custom field, and Value keeps subscribers whose value for it is exactly this.
filter.notOpenedSincebodyinteger (int64)—NotOpenedSince keeps subscribers who have opened nothing since this time, including those who never opened anything.
filter.openedAfterbodyinteger (int64)—OpenedAfter keeps subscribers who opened a broadcast at or after this time.
filter.qbodystring—Q keeps subscribers whose address or name begins with it, case-insensitively.
filter.refbodystring—Ref keeps subscribers from one source instance: a form id, a page, an import batch id.
filter.sourcebodystring—Source keeps subscribers that came from this kind of source: form, page, api, import or commerce.
filter.statusbodystring—Status is one status or several, comma-separated: pending, subscribed, unsubscribed, bounced, complained, cleaned.
filter.tagbodystring—Tag keeps subscribers carrying this tag.
filter.valuebodystring—Value is the custom field's value Field keeps.
finishedAtbodyinteger (int64)—FinishedAt is when it ended.
fromAddressbodystring—FromAddress is the sender's address.
fromNamebodystring—FromName, FromAddress and ReplyTo override the list's sender.
htmlbodystring—HTML is the message as HTML.
idbodystring—ID is the broadcast's id ("brd_" and 96 random bits in hex).
listbodystring—List is the list it goes to.
providerbodystring—Provider is ses or sendgrid; empty takes the list's.
replyTobodystring—ReplyTo is where replies go.
scheduledAtbodyinteger (int64)—ScheduledAt is when it is to start, unix seconds.
segmentbodystring—Segment narrows it to a saved segment of the list; empty is the list.
startedAtbodyinteger (int64)—StartedAt and FinishedAt are when sending began and ended.
statusbodystring—Status is draft, scheduled, sending, sent, cancelled or failed.
subjectbodystring—Subject is the subject line.
textbodystring—Text is the message as plain text.
updatedAtbodyinteger (int64)—UpdatedAt is the last change.

Failure carries the platform error shape — see Errors.

Examples

hanzo marketing broadcasts cancel <id>
import { Configuration, MarketingApi } from 'hanzoai';

const api = new MarketingApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postMarketingBroadcastsByIdCancel({ id: 'id' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import MarketingApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = MarketingApi(client).post_marketing_broadcasts_by_id_cancel(id='id')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.MarketingAPI.PostMarketingBroadcastsByIdCancel(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, marketing_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = marketing_api::post_marketing_broadcasts_by_id_cancel(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.MarketingApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new MarketingApi(client).postMarketingBroadcastsByIdCancel();

The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →

curl -X POST https://api.hanzo.ai/v1/marketing/broadcasts/<id>/cancel \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches marketing through the marketing tool, which names its 82 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_marketing_audiences"
         }
       }
     }'

Marketing API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.