curl --request GET \
--url https://api.example.com/api/v1/sender-profiles/{profile_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/sender-profiles/{profile_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/sender-profiles/{profile_id}', 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://api.example.com/api/v1/sender-profiles/{profile_id}",
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 := "https://api.example.com/api/v1/sender-profiles/{profile_id}"
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("https://api.example.com/api/v1/sender-profiles/{profile_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/sender-profiles/{profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"user_id": "<string>",
"profile_name": "<string>",
"sender_data": {
"data": {}
},
"id": "<string>",
"description": "<string>",
"prompt_names": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"usage_count": 0,
"is_default": false,
"send_mechanism": "bavimail",
"connected_mailbox_account": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get Sender Profile
Retrieve a specific sender profile.
Retrieves a sender profile by ID if the actor’s org has access (B2b read cutover: sender_profiles are org-owned, shared across members).
Args: profile_id: The ID of the profile to retrieve org_context: Resolved org scope for the actor settings: Application settings
Returns: The requested sender profile
Raises: HTTPException: If profile not found or access denied
curl --request GET \
--url https://api.example.com/api/v1/sender-profiles/{profile_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/sender-profiles/{profile_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/sender-profiles/{profile_id}', 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://api.example.com/api/v1/sender-profiles/{profile_id}",
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 := "https://api.example.com/api/v1/sender-profiles/{profile_id}"
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("https://api.example.com/api/v1/sender-profiles/{profile_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/sender-profiles/{profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"user_id": "<string>",
"profile_name": "<string>",
"sender_data": {
"data": {}
},
"id": "<string>",
"description": "<string>",
"prompt_names": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"usage_count": 0,
"is_default": false,
"send_mechanism": "bavimail",
"connected_mailbox_account": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
Successful Response
Sender profile model for storing reusable sender configurations.
This model stores a named profile containing DynamicSenderData, which can have ANY arbitrary fields. There is no predefined schema for the sender data.
Examples of valid sender data:
- {"full_name": "John", "company": "TechCorp", "role": "Sales"}
- {"sender_name": "Jane", "brand": "AI Solutions", "linkedin": "jane-doe"}
- {"name": "Bob", "agency": "Marketing Pro", "phone": "+1234", "timezone": "EST"}
- Any other combination of fields the user needs
User ID who owns this profile
User-friendly name for this profile (e.g., 'Sales Team Profile', 'Personal Brand')
1 - 100The actual sender data with arbitrary fields
Show child attributes
Show child attributes
Unique profile identifier
Optional description of when/how to use this profile
500Names of saved prompts on this profile (from sender_data.prompts[].name). Body/text intentionally omitted from list/search responses to keep payloads light and avoid leaking long prompt bodies into the campaign launcher.
Profile creation timestamp
Last update timestamp
Number of times this profile has been used
Whether this is the default profile
Outbound send mechanism bound to this sender identity.
bavimail, gmail, outlook Connected mailbox account key, e.g. the Gmail address.