Create a sender identity
curl --request POST \
--url https://core-service.prod.brudcast.com/api/v1/user/sender-identities \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"label": "<string>",
"value": "<string>",
"fromName": "<string>",
"replyTo": "jsmith@example.com",
"metadata": {},
"sendingDomainId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDefault": true
}
'import requests
url = "https://core-service.prod.brudcast.com/api/v1/user/sender-identities"
payload = {
"label": "<string>",
"value": "<string>",
"fromName": "<string>",
"replyTo": "jsmith@example.com",
"metadata": {},
"sendingDomainId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDefault": True
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
label: '<string>',
value: '<string>',
fromName: '<string>',
replyTo: 'jsmith@example.com',
metadata: {},
sendingDomainId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
isDefault: true
})
};
fetch('https://core-service.prod.brudcast.com/api/v1/user/sender-identities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core-service.prod.brudcast.com/api/v1/user/sender-identities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'label' => '<string>',
'value' => '<string>',
'fromName' => '<string>',
'replyTo' => 'jsmith@example.com',
'metadata' => [
],
'sendingDomainId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'isDefault' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core-service.prod.brudcast.com/api/v1/user/sender-identities"
payload := strings.NewReader("{\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"fromName\": \"<string>\",\n \"replyTo\": \"jsmith@example.com\",\n \"metadata\": {},\n \"sendingDomainId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"isDefault\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://core-service.prod.brudcast.com/api/v1/user/sender-identities")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"fromName\": \"<string>\",\n \"replyTo\": \"jsmith@example.com\",\n \"metadata\": {},\n \"sendingDomainId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"isDefault\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-service.prod.brudcast.com/api/v1/user/sender-identities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"fromName\": \"<string>\",\n \"replyTo\": \"jsmith@example.com\",\n \"metadata\": {},\n \"sendingDomainId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"isDefault\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "email",
"status": "pending",
"label": "Support inbox",
"value": "support@example.com",
"fromName": "Example Support",
"replyTo": "replies@example.com",
"metadata": "<unknown>",
"sendingDomainId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDefault": true,
"adminNotes": "<string>",
"approvedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approvedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "The payload is invalid",
"code": "E_VALIDATION_ERROR",
"errors": [
{
"field": "emailAddress",
"rule": "email",
"message": "The emailAddress field must be a valid email address"
}
]
}{
"success": false,
"message": "Too many requests",
"code": "E_TOO_MANY_REQUESTS",
"retryAfter": 60
}Sender Identities
Create a sender identity
Registers an address, number or handle the organization can send from. An email identity is approved immediately and is linked to the matching verified sending domain when one exists; identities on every other channel are created pending platform review and cannot send until they are approved. Requires the senders:write scope.
POST
/
api
/
v1
/
user
/
sender-identities
Create a sender identity
curl --request POST \
--url https://core-service.prod.brudcast.com/api/v1/user/sender-identities \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"label": "<string>",
"value": "<string>",
"fromName": "<string>",
"replyTo": "jsmith@example.com",
"metadata": {},
"sendingDomainId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDefault": true
}
'import requests
url = "https://core-service.prod.brudcast.com/api/v1/user/sender-identities"
payload = {
"label": "<string>",
"value": "<string>",
"fromName": "<string>",
"replyTo": "jsmith@example.com",
"metadata": {},
"sendingDomainId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDefault": True
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
label: '<string>',
value: '<string>',
fromName: '<string>',
replyTo: 'jsmith@example.com',
metadata: {},
sendingDomainId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
isDefault: true
})
};
fetch('https://core-service.prod.brudcast.com/api/v1/user/sender-identities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core-service.prod.brudcast.com/api/v1/user/sender-identities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'label' => '<string>',
'value' => '<string>',
'fromName' => '<string>',
'replyTo' => 'jsmith@example.com',
'metadata' => [
],
'sendingDomainId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'isDefault' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core-service.prod.brudcast.com/api/v1/user/sender-identities"
payload := strings.NewReader("{\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"fromName\": \"<string>\",\n \"replyTo\": \"jsmith@example.com\",\n \"metadata\": {},\n \"sendingDomainId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"isDefault\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://core-service.prod.brudcast.com/api/v1/user/sender-identities")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"fromName\": \"<string>\",\n \"replyTo\": \"jsmith@example.com\",\n \"metadata\": {},\n \"sendingDomainId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"isDefault\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-service.prod.brudcast.com/api/v1/user/sender-identities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"<string>\",\n \"value\": \"<string>\",\n \"fromName\": \"<string>\",\n \"replyTo\": \"jsmith@example.com\",\n \"metadata\": {},\n \"sendingDomainId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"isDefault\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "email",
"status": "pending",
"label": "Support inbox",
"value": "support@example.com",
"fromName": "Example Support",
"replyTo": "replies@example.com",
"metadata": "<unknown>",
"sendingDomainId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"isDefault": true,
"adminNotes": "<string>",
"approvedBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approvedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "The payload is invalid",
"code": "E_VALIDATION_ERROR",
"errors": [
{
"field": "emailAddress",
"rule": "email",
"message": "The emailAddress field must be a valid email address"
}
]
}{
"success": false,
"message": "Too many requests",
"code": "E_TOO_MANY_REQUESTS",
"retryAfter": 60
}Authorizations
apiKeyapiKeyBearer
An organization API key, prefixed bk_live_. Takes precedence over Authorization when both are sent. The key is bound to one organization, and the scopes it was issued with are enforced per endpoint.
Headers
Required when authenticating with an access token. Optional with an API key, whose own organization binding is authoritative; a value contradicting it is refused with 403.
Body
application/json
Available options:
email, sms, whatsapp, telegram, imessage, push Minimum string length:
1Minimum string length:
1Minimum string length:
1