curl --request GET \
--url http://localhost:8080/sequences/{sequenceId}/launch-preview \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8080/sequences/{sequenceId}/launch-preview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8080/sequences/{sequenceId}/launch-preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/sequences/{sequenceId}/launch-preview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/sequences/{sequenceId}/launch-preview"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/sequences/{sequenceId}/launch-preview")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/sequences/{sequenceId}/launch-preview")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"will_send": 0,
"already_sending": 0,
"held": [
{
"reason": "below_cutoff",
"count": 0
}
],
"blockers": [
{
"reason": "no_steps",
"channels": [
"<string>"
],
"templates": [
{
"name": "<string>",
"language": "<string>",
"status": "<string>"
}
]
}
],
"pending_templates": [
{
"name": "<string>",
"language": "<string>",
"status": "<string>"
}
],
"regulatory_notice": {
"countries": [
"<string>"
],
"points": [
"<string>"
],
"cards": [
{
"code": "<string>",
"name": "<string>",
"consent": "opt_in",
"consent_note": "<string>",
"hours": {
"weekdays": "<string>",
"saturday": "<string>",
"sunday": "<string>",
"holidays": "<string>",
"clock": "called_party",
"basis": "statute",
"note": "<string>"
},
"frequency": "<string>",
"dnc": "<string>",
"ai_disclosure": "<string>",
"recording": "<string>",
"origination": "<string>",
"origination_kind": "foreign_origin_prohibited",
"penalties": "<string>",
"prohibited": true,
"links": [
{
"name": "<string>",
"url": "<string>"
}
],
"last_reviewed": "<string>"
}
]
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}What launching WOULD do, without doing it
See what launching would do before doing it: forecast of who starts sending, who is held and why, blockers that refuse the launch, and templates still in review.
curl --request GET \
--url http://localhost:8080/sequences/{sequenceId}/launch-preview \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8080/sequences/{sequenceId}/launch-preview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8080/sequences/{sequenceId}/launch-preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/sequences/{sequenceId}/launch-preview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/sequences/{sequenceId}/launch-preview"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/sequences/{sequenceId}/launch-preview")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/sequences/{sequenceId}/launch-preview")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"will_send": 0,
"already_sending": 0,
"held": [
{
"reason": "below_cutoff",
"count": 0
}
],
"blockers": [
{
"reason": "no_steps",
"channels": [
"<string>"
],
"templates": [
{
"name": "<string>",
"language": "<string>",
"status": "<string>"
}
]
}
],
"pending_templates": [
{
"name": "<string>",
"language": "<string>",
"status": "<string>"
}
],
"regulatory_notice": {
"countries": [
"<string>"
],
"points": [
"<string>"
],
"cards": [
{
"code": "<string>",
"name": "<string>",
"consent": "opt_in",
"consent_note": "<string>",
"hours": {
"weekdays": "<string>",
"saturday": "<string>",
"sunday": "<string>",
"holidays": "<string>",
"clock": "called_party",
"basis": "statute",
"note": "<string>"
},
"frequency": "<string>",
"dnc": "<string>",
"ai_disclosure": "<string>",
"recording": "<string>",
"origination": "<string>",
"origination_kind": "foreign_origin_prohibited",
"penalties": "<string>",
"prohibited": true,
"links": [
{
"name": "<string>",
"url": "<string>"
}
],
"last_reviewed": "<string>"
}
]
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the sequence
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
Default Response
A FORECAST of how many would start sending, not a promise: consent and suppression are re-checked at claim time and fail closed.
-9007199254740991 <= x <= 9007199254740991-9007199254740991 <= x <= 9007199254740991Show child attributes
Show child attributes
Empty means launch works. Launch itself refuses on anything here.
Show child attributes
Show child attributes
Templates still waiting on approval. These do NOT stop a launch: armed people wait and start sending the moment the template clears.
Show child attributes
Show child attributes
Informational: present when the campaign has voice steps reaching a catalogued country. Show it before launching and pass regulatory_acknowledged: true when the user confirms — the launch itself never refuses over it. Null: nothing to show.
Show child attributes
Show child attributes
Was this page helpful?