Get Calling Settings
curl --request GET \
--url https://api.flowiq.live/v1/calling/settings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.flowiq.live/v1/calling/settings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.flowiq.live/v1/calling/settings', 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.flowiq.live/v1/calling/settings",
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.flowiq.live/v1/calling/settings"
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.flowiq.live/v1/calling/settings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flowiq.live/v1/calling/settings")
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{
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"calling": {
"status": "ENABLED",
"call_icon_visibility": "DEFAULT",
"call_icons": {
"restrict_to_user_countries": [
"<string>"
]
},
"callback_permission_status": "ENABLED",
"call_hours": {
"status": "ENABLED",
"timezone_id": "Africa/Johannesburg",
"weekly_operating_hours": [
{
"day_of_week": "MONDAY",
"open_time": "0800",
"close_time": "1700"
}
],
"holiday_schedule": [
{}
]
},
"sip": {
"status": "ENABLED",
"servers": [
{
"hostname": "<string>",
"port": 123,
"request_uri_user_params": {},
"sip_user_password": "<string>"
}
]
},
"audio": {
"additional_codecs": [
"PCMA"
]
},
"voicemail": {}
},
"answered_by": "api",
"flowiq_ai_answers": true,
"stream": {
"url": "<string>",
"format": "<string>",
"headers": {},
"custom_parameters": {}
}
}{
"error": "Request failed",
"message": "Parameter value is not valid"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"whatsapp_error_code": 123
}{
"error": "Request failed",
"message": "Contact has not granted callback permission"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"whatsapp_error_code": 123
}Settings
Get Calling Settings
WhatsApp’s calling settings for your number, and who answers incoming calls. Scope: read (write with include_sip_credentials).
GET
/
v1
/
calling
/
settings
Get Calling Settings
curl --request GET \
--url https://api.flowiq.live/v1/calling/settings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.flowiq.live/v1/calling/settings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.flowiq.live/v1/calling/settings', 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.flowiq.live/v1/calling/settings",
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.flowiq.live/v1/calling/settings"
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.flowiq.live/v1/calling/settings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flowiq.live/v1/calling/settings")
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{
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"calling": {
"status": "ENABLED",
"call_icon_visibility": "DEFAULT",
"call_icons": {
"restrict_to_user_countries": [
"<string>"
]
},
"callback_permission_status": "ENABLED",
"call_hours": {
"status": "ENABLED",
"timezone_id": "Africa/Johannesburg",
"weekly_operating_hours": [
{
"day_of_week": "MONDAY",
"open_time": "0800",
"close_time": "1700"
}
],
"holiday_schedule": [
{}
]
},
"sip": {
"status": "ENABLED",
"servers": [
{
"hostname": "<string>",
"port": 123,
"request_uri_user_params": {},
"sip_user_password": "<string>"
}
]
},
"audio": {
"additional_codecs": [
"PCMA"
]
},
"voicemail": {}
},
"answered_by": "api",
"flowiq_ai_answers": true,
"stream": {
"url": "<string>",
"format": "<string>",
"headers": {},
"custom_parameters": {}
}
}{
"error": "Request failed",
"message": "Parameter value is not valid"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"whatsapp_error_code": 123
}{
"error": "Request failed",
"message": "Contact has not granted callback permission"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"whatsapp_error_code": 123
}WhatsApp’s calling settings for your number (
calling, as WhatsApp returns them) and who answers incoming calls (answered_by). Add ?include_sip_credentials=true (needs the write scope) to see the SIP password WhatsApp generated.
Basic Usage
curl "https://api.flowiq.live/v1/calling/settings" \
-H "Authorization: Bearer fiq_YOUR_API_KEY"
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
include_sip_credentials | boolean | No | true to include sip.servers[].sip_user_password |
Response
Success (200)
{
"organization_id": "a4234f32-…",
"calling": {
"status": "ENABLED",
"call_icon_visibility": "DEFAULT",
"callback_permission_status": "ENABLED",
"call_hours": { "status": "DISABLED" },
"sip": { "status": "DISABLED" }
},
"answered_by": "flowiq",
"flowiq_ai_answers": false,
"stream": null
}
answered_by is api (your server answers with SDP, see Calling), stream (FlowIQ answers and streams the audio to stream.url) or flowiq. flowiq_ai_answers is true when FlowIQ’s voice AI picks up incoming calls. stream shows the media stream target when one is set, with header values hidden.Authorizations
Your FlowIQ organisation API key (Settings → API Keys), sent as a bearer token. Format: Bearer fiq_YOUR_API_KEY
Query Parameters
true to include the SIP password WhatsApp generated (needs the write scope)
Response
Success
WhatsApp's calling settings for your number, as WhatsApp returns them
Show child attributes
Show child attributes
Available options:
api, stream, flowiq FlowIQ's voice AI picks up incoming calls
The media stream set for this number (header values hidden)
Show child attributes
Show child attributes

