Read the Organization's Compliance profile
GET /v1/compliance-profile
| Property | Value |
|---|---|
| Operation | get_compliance_profile |
| Group | Compliance profile |
| Scope | organization:read |
| Route class | read |
| Idempotency | No Idempotency-Key |
| Audit | Not audited: A configuration read; the Compliance profile is not Call content. |
| Released in | 1.32.0 |
| Phase 0 host | Served (the hosted api pins 1.65.0) |
Answers the version of the caller's Organization's Compliance profile in force, whose number is also the ETag (1.32.0, workspace ADR 0082). Before the owner first changes it, the answer is version 0, the defaults: recording with the announcement, Providers in us only, no BAA required and no fallback from the Organization's own key to Vocal's. Every Member role holds organization:read.
Request
Set VOCAL_API to the base URL of your API and VOCAL_API_KEY to an API key with the organization:read scope (Authentication and keys). Replace each placeholder, such as agt_... or <name>, with your own value.
curl "$VOCAL_API/v1/compliance-profile" \
-H "Authorization: Bearer $VOCAL_API_KEY"const response = await fetch(`${process.env.VOCAL_API}/v1/compliance-profile`, {
headers: {
Authorization: `Bearer ${process.env.VOCAL_API_KEY}`,
},
});
console.log(response.status, await response.text());import os
import requests
response = requests.get(
f"{os.environ['VOCAL_API']}/v1/compliance-profile",
headers={
"Authorization": f"Bearer {os.environ['VOCAL_API_KEY']}",
},
)
print(response.status_code, response.text)Responses
| Status | Content type | Shape | Error codes |
|---|---|---|---|
200 | application/json | ComplianceProfile | |
400 | application/json | ErrorEnvelope | invalid_request |
401 | application/json | ErrorEnvelope | unauthenticated |
403 | application/json | ErrorEnvelope | forbidden |
429 | application/json | ErrorEnvelope | rate_limited |
500 | application/json | ErrorEnvelope | internal_error |
Fields of the 200 answer
The shape is ComplianceProfile.
| Field | Type | Required | Description |
|---|---|---|---|
byok_platform_fallback | ByokPlatformFallback | yes | Whether a stage on the Organization's own key may fall back to Vocal's; forbidden by default. |
contact_inactivity_days | integer | no | Days without a Call, a message, an enrollment or an API write after which a Contact is deleted by the daily retention.scrub job (1.61.0): 30 to 365, 365 by default (targets). Absent, from an api before 1.61.0, 365. |
content_visibility | ContentVisibility | no | The visibility matrix of the content classes by role (1.57.0), checked at read time against the profile in force. Absent from an api older than 1.57.0; a reader treats its absence as the default. |
export_content | ExportContent | no | Whether an S3 export may carry content (1.57.0, not built); off by default. Absent from an api older than 1.57.0; a reader treats its absence as the default. |
live_call_judging | LiveCallJudging | no | Whether live Calls may be judged (1.63.0); off by default. Absent from an api before 1.63.0, which a reader treats as the default. |
live_call_judging_sample_rate | number | no | The share of eligible Calls a judge reads while live_call_judging is on (1.63.0): 0.01 to 1, 0.1 by default (a target), drawn at finalize. Absent from an api before 1.63.0, which a reader treats as the default. |
object | "compliance_profile" | yes | |
provider_regions | array of ProviderRegion | yes | The regions where the Organization's Providers may process, one to as many as ProviderRegion holds (four from 1.38.0, three before), each once; us by default. Admission and publish apply the intersection with the cell's own set, and a Provider whose descriptor names a region outside it is dropped from every chain (region_not_allowed). |
recording_policy | RecordingPolicy | yes | The recording policy; on_with_announcement by default. |
require_baa | boolean | yes | When true, the chain resolver drops every Provider whose descriptor baa_available is neither yes nor not_applicable (baa_not_stated). Every real descriptor of 1.32.0 reads unknown, so an Organization that sets it runs only mock Providers, in test. False by default. |
reveal_approval | RevealApproval | no | Whether a reveal grant needs a second approver (1.57.0); none by default. Absent from an api older than 1.57.0; a reader treats its absence as the default. |
revocation_scope | RevocationScope | no | How far an opt-out reaches (1.61.0): all_channels (the default) or per_channel. Absent, from an api before 1.61.0, all_channels. |
trace_retention_days | integer or null | no | Shortens the retention of stage traces below the Call row's (1.57.0): 1 day up to the platform ceiling, or null, the default, to keep them with the Call row. The api refuses a value above the ceiling with the issue trace_retention_above_ceiling. Absent from an api older than 1.57.0; a reader treats its absence as the default. |
updated_at | Timestamp or null | yes | When the version was written; null for version 0. |
updated_by | ActorRef or null | yes | The Member who wrote the version, always an owner; null for version 0. |
verbose_capture | VerboseCapture | no | Where verbose capture may run (1.57.0); allowed by default. Absent from an api older than 1.57.0; a reader treats its absence as the default. |
version | integer | yes | The version in force: 0 for the defaults before the first update, then one more per update. Returned as the ETag and required in the If-Match of PATCH /v1/compliance-profile. |