Consent, local time, and attempt counts
curl --request GET \
--url https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance \
--header 'Authorization: Bearer <token>'import requests
url = "https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance', 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://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance",
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://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance"
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://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance")
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{
"consentBasis": "<string>",
"consentCapturedAt": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"localTime": "<string>",
"window": {
"localStart": "09:00",
"localEnd": "20:00"
},
"windowState": "open",
"attemptsTotal": 123,
"attempts7d": 123,
"enforced": true
}{
"error": "not found"
}Contacts
Consent, local time, and attempt counts
What a reviewer needs on one screen: the consent basis and when it was captured, the contact’s timezone and the local time there right now, the tenant’s default calling window, and how many attempts this contact has had in total and in the last seven days.
The counts gate nothing. enforced is false and says so in the
response, because a number that looks like a limit but is not one is
worse than no number at all (0017 §8).
GET
/
contacts
/
accounts
/
{id}
/
compliance
Consent, local time, and attempt counts
curl --request GET \
--url https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance \
--header 'Authorization: Bearer <token>'import requests
url = "https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance', 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://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance",
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://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance"
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://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://apiv2.vodex.ai/v1/contacts/accounts/{id}/compliance")
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{
"consentBasis": "<string>",
"consentCapturedAt": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"localTime": "<string>",
"window": {
"localStart": "09:00",
"localEnd": "20:00"
},
"windowState": "open",
"attemptsTotal": 123,
"attempts7d": 123,
"enforced": true
}{
"error": "not found"
}Authorizations
Tenant API key (vdx_live_…) as Authorization: Bearer.
Path Parameters
Response
Compliance summary.
The time where they are, right now.
Local hours, in the contact's own timezone.
Show child attributes
Show child attributes
Available options:
open, closed, unknown Always false. The counts are displayed and gate nothing — a number that looks like a limit but is not one is worse than no number.