curl --request POST \
--url https://app.famulor.io/api/v1/email/addresses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain_id": "d1b2c3d4-0000-4000-8000-000000000020",
"local_part": "support",
"assistant_id": "a1b2c3d4-0000-4000-8000-000000000001"
}
'import requests
url = "https://app.famulor.io/api/v1/email/addresses"
payload = {
"domain_id": "d1b2c3d4-0000-4000-8000-000000000020",
"local_part": "support",
"assistant_id": "a1b2c3d4-0000-4000-8000-000000000001"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
domain_id: 'd1b2c3d4-0000-4000-8000-000000000020',
local_part: 'support',
assistant_id: 'a1b2c3d4-0000-4000-8000-000000000001'
})
};
fetch('https://app.famulor.io/api/v1/email/addresses', 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://app.famulor.io/api/v1/email/addresses",
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([
'domain_id' => 'd1b2c3d4-0000-4000-8000-000000000020',
'local_part' => 'support',
'assistant_id' => 'a1b2c3d4-0000-4000-8000-000000000001'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://app.famulor.io/api/v1/email/addresses"
payload := strings.NewReader("{\n \"domain_id\": \"d1b2c3d4-0000-4000-8000-000000000020\",\n \"local_part\": \"support\",\n \"assistant_id\": \"a1b2c3d4-0000-4000-8000-000000000001\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://app.famulor.io/api/v1/email/addresses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain_id\": \"d1b2c3d4-0000-4000-8000-000000000020\",\n \"local_part\": \"support\",\n \"assistant_id\": \"a1b2c3d4-0000-4000-8000-000000000001\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.io/api/v1/email/addresses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domain_id\": \"d1b2c3d4-0000-4000-8000-000000000020\",\n \"local_part\": \"support\",\n \"assistant_id\": \"a1b2c3d4-0000-4000-8000-000000000001\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"domain_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"local_part": "support",
"assistant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>",
"is_active": true,
"created_at": "2023-11-07T05:31:56Z",
"email": "jsmith@example.com",
"domain": "<string>",
"assistant_name": "<string>"
}
}Create an email address
Create a hosted address with hosted=true or an address on a verified custom domain with domain_id. Hosted names use 3–32 lowercase letters, numbers, dots, hyphens or underscores, start and end with a letter or number, and cannot contain consecutive dots. Reserved names are unavailable. Names remain reserved to the original workspace after deletion. Required scope: assistants:write. Requires workspace owner/admin.
curl --request POST \
--url https://app.famulor.io/api/v1/email/addresses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain_id": "d1b2c3d4-0000-4000-8000-000000000020",
"local_part": "support",
"assistant_id": "a1b2c3d4-0000-4000-8000-000000000001"
}
'import requests
url = "https://app.famulor.io/api/v1/email/addresses"
payload = {
"domain_id": "d1b2c3d4-0000-4000-8000-000000000020",
"local_part": "support",
"assistant_id": "a1b2c3d4-0000-4000-8000-000000000001"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
domain_id: 'd1b2c3d4-0000-4000-8000-000000000020',
local_part: 'support',
assistant_id: 'a1b2c3d4-0000-4000-8000-000000000001'
})
};
fetch('https://app.famulor.io/api/v1/email/addresses', 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://app.famulor.io/api/v1/email/addresses",
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([
'domain_id' => 'd1b2c3d4-0000-4000-8000-000000000020',
'local_part' => 'support',
'assistant_id' => 'a1b2c3d4-0000-4000-8000-000000000001'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://app.famulor.io/api/v1/email/addresses"
payload := strings.NewReader("{\n \"domain_id\": \"d1b2c3d4-0000-4000-8000-000000000020\",\n \"local_part\": \"support\",\n \"assistant_id\": \"a1b2c3d4-0000-4000-8000-000000000001\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://app.famulor.io/api/v1/email/addresses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain_id\": \"d1b2c3d4-0000-4000-8000-000000000020\",\n \"local_part\": \"support\",\n \"assistant_id\": \"a1b2c3d4-0000-4000-8000-000000000001\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.io/api/v1/email/addresses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domain_id\": \"d1b2c3d4-0000-4000-8000-000000000020\",\n \"local_part\": \"support\",\n \"assistant_id\": \"a1b2c3d4-0000-4000-8000-000000000001\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"domain_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"local_part": "support",
"assistant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": "<string>",
"is_active": true,
"created_at": "2023-11-07T05:31:56Z",
"email": "jsmith@example.com",
"domain": "<string>",
"assistant_name": "<string>"
}
}Authorizations
API key (fam_..., created under Settings → API Keys) or an OAuth 2.0 access token (fam_at_...). REST operations also require API Access for the credential's workspace. Keys can be restricted to scopes such as assistants:read, calls:write, campaigns:write, automations:read, dashboards:read, dashboards:write, leads:write, segments:write, loop:read, loop:write, phone_numbers:write, sip_trunks:write, knowledge:write, voices:read, billing:read, billing:write, settings:write, platform:read, platform:write; a *:write scope implies the matching *:read. Automation and dashboard endpoints also accept the legacy calls:* scope. Keys without scope restrictions have full access within the workspace's available capabilities.
Body
"support"
Available hosted domain UUID when hosted is true, or your verified custom domain UUID when hosted is false (required).
128Create a free hosted address on an available domain. Select domain_id from getEmailChannelOptions; if omitted, uses the first available hosted domain.
Response
The created address.
Show child attributes
Show child attributes