Fetch a broadcast
Get
bash
https://api.bunce.so/v1/broadcast/{broadcast_id}Returns a broadcast using its ID.
Request
Path Parameter string<uuid> required
ID string<uuid> required
Identity of the broadcast entity to work with.
bash
curl --request GET \
--url https://api.bunce.so/v1/broadcast/9c030d4e-b773-4492-8321-aa247abfdc0b \
--header 'X-Authorization: sk_live_************************'go
import (
"fmt"
"net/http"
"io/ioutil"
)
url := "https://api.bunce.so/v1/broadcast/9c030d4e-b773-4492-8321-aa247abfdc0b"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Authorization", "sk_live_************************")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))js
import from 'node-fetch'
let =
'https://api.bunce.so/v1/broadcast/9c030d4e-b773-4492-8321-aa247abfdc0b'
let = {
: 'GET',
: {
'X-Authorization': 'sk_live_************************',
},
}
(, )
.then(() => .json())
.then(() => .())
.catch(() => .('error:' + ))php
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.bunce.so/v1/broadcast/9c030d4e-b773-4492-8321-aa247abfdc0b');
$request->setRequestMethod('GET');
$request->setHeaders([
'X-Authorization' => 'sk_live_************************'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();java
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.bunce.so/v1/broadcast/9c030d4e-b773-4492-8321-aa247abfdc0b"))
.header("X-Authorization", "sk_live_************************")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Response
The only difference between the tabs is meta: an sms broadcast populates it, every other channel returns it empty.
json
{
"success": true,
"data": {
"id": "a2b66aff-2950-4d16-b11a-c7e173d544bf",
"channel": "sms",
"subject": "Another New Message",
"title": "",
"message": "Hello M",
"message_type": "broadcast",
"created_at": "2026-09-10 12:33:48",
"total_sent": 0,
"total_delivered": 0,
"total_failed": 0,
"total_complained": null,
"total_bounced": 0,
"links": [
{
"url": "https://trybunce.com/blog/sms-best-practices",
"clicks": 23
},
{
"url": "https://trybunce.com/features",
"clicks": 87
},
{
"url": "https://trybunce.com/pricing",
"clicks": 142
}
],
"meta": {
"track_links": true,
"include_unsubscribe_link": false
}
},
"message": "Broadcast fetched successfully"
}json
{
"success": true,
"data": {
"id": "9e73ddb2-1a6c-4165-8609-e225413f3226",
"channel": "email",
"subject": "Broadcast Test",
"title": "",
"message": "This is a test broadcast message",
"message_type": "broadcast",
"created_at": "2025-03-17 09:46:18",
"total_sent": 0,
"total_delivered": 0,
"total_failed": 0,
"total_complained": null,
"total_bounced": 0,
"links": [
{
"url": "https://trybunce.com/pricing",
"clicks": 12
}
],
"meta": {}
},
"message": "Broadcast fetched successfully"
}Response fields
links array | The links found in the message sent, with their click counts. Returned on every channel. |
links[].url string | The link as it appears in the message. |
links[].clicks int | How many times recipients clicked that link. |
meta object | Message settings for the broadcast. Only sms populates it — other channels return an empty object {}. |
meta.track_links boolean | sms — whether the links in the message were rewritten so clicks can be tracked. |
meta.include_unsubscribe_link boolean | sms — whether an unsubscribe link was appended to the message. |