curl --request POST \
--url https://app.famulor.io/api/v1/support/requests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"client_request_id": "4bc693c5-fd56-49e3-85d6-75b4b58763d3",
"subject": "Outbound calls end after pickup",
"message": "The issue started today and affects every outbound call."
}
'import requests
url = "https://app.famulor.io/api/v1/support/requests"
payload = {
"client_request_id": "4bc693c5-fd56-49e3-85d6-75b4b58763d3",
"subject": "Outbound calls end after pickup",
"message": "The issue started today and affects every outbound call."
}
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({
client_request_id: '4bc693c5-fd56-49e3-85d6-75b4b58763d3',
subject: 'Outbound calls end after pickup',
message: 'The issue started today and affects every outbound call.'
})
};
fetch('https://app.famulor.io/api/v1/support/requests', 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/support/requests",
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([
'client_request_id' => '4bc693c5-fd56-49e3-85d6-75b4b58763d3',
'subject' => 'Outbound calls end after pickup',
'message' => 'The issue started today and affects every outbound call.'
]),
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/support/requests"
payload := strings.NewReader("{\n \"client_request_id\": \"4bc693c5-fd56-49e3-85d6-75b4b58763d3\",\n \"subject\": \"Outbound calls end after pickup\",\n \"message\": \"The issue started today and affects every outbound call.\"\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/support/requests")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"client_request_id\": \"4bc693c5-fd56-49e3-85d6-75b4b58763d3\",\n \"subject\": \"Outbound calls end after pickup\",\n \"message\": \"The issue started today and affects every outbound call.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.io/api/v1/support/requests")
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 \"client_request_id\": \"4bc693c5-fd56-49e3-85d6-75b4b58763d3\",\n \"subject\": \"Outbound calls end after pickup\",\n \"message\": \"The issue started today and affects every outbound call.\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"reference": "SUP-4BC693C5FD56",
"status": "submitted",
"created_at": "2023-11-07T05:31:56Z",
"priority_support": true
}
}Create a support request
Submits a support request for the authenticated root workspace, including a white-label reseller workspace. Reseller-customer workspaces are not eligible. Reusing the same client request ID with the same content returns the original reference. Workspaces with Priority Support (included in the plan or booked as add-on) are routed to priority support automatically; priority_support in the response confirms it. Required scope: settings:write.
curl --request POST \
--url https://app.famulor.io/api/v1/support/requests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"client_request_id": "4bc693c5-fd56-49e3-85d6-75b4b58763d3",
"subject": "Outbound calls end after pickup",
"message": "The issue started today and affects every outbound call."
}
'import requests
url = "https://app.famulor.io/api/v1/support/requests"
payload = {
"client_request_id": "4bc693c5-fd56-49e3-85d6-75b4b58763d3",
"subject": "Outbound calls end after pickup",
"message": "The issue started today and affects every outbound call."
}
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({
client_request_id: '4bc693c5-fd56-49e3-85d6-75b4b58763d3',
subject: 'Outbound calls end after pickup',
message: 'The issue started today and affects every outbound call.'
})
};
fetch('https://app.famulor.io/api/v1/support/requests', 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/support/requests",
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([
'client_request_id' => '4bc693c5-fd56-49e3-85d6-75b4b58763d3',
'subject' => 'Outbound calls end after pickup',
'message' => 'The issue started today and affects every outbound call.'
]),
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/support/requests"
payload := strings.NewReader("{\n \"client_request_id\": \"4bc693c5-fd56-49e3-85d6-75b4b58763d3\",\n \"subject\": \"Outbound calls end after pickup\",\n \"message\": \"The issue started today and affects every outbound call.\"\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/support/requests")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"client_request_id\": \"4bc693c5-fd56-49e3-85d6-75b4b58763d3\",\n \"subject\": \"Outbound calls end after pickup\",\n \"message\": \"The issue started today and affects every outbound call.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.io/api/v1/support/requests")
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 \"client_request_id\": \"4bc693c5-fd56-49e3-85d6-75b4b58763d3\",\n \"subject\": \"Outbound calls end after pickup\",\n \"message\": \"The issue started today and affects every outbound call.\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"reference": "SUP-4BC693C5FD56",
"status": "submitted",
"created_at": "2023-11-07T05:31:56Z",
"priority_support": true
}
}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
Response
The submitted request and its public reference.
Show child attributes
Show child attributes