Skip to content

Check whether this contact may be dialed right now

GET
/v1/contacts/{contact_id}/dialability
curl --request GET \
--url 'https://api.vocapable.com/v1/contacts/example/dialability?purpose=marketing' \
--header 'Authorization: Bearer <token>'

Evaluate the canonical dialability gate over this contact’s record.

The same evaluator every dial passes, given the facts a contact row holds: the denormalized internal-DNC flag, the consent class, the jurisdictions, and the callee’s local clock. Bureau scrub stages are billed per query and belong to a ScrubRun, so none of them run here and policy_snapshot.stages is empty.

The same resolution, too - outbound_effective_policy, at this request’s clock. A preview that answered “dialable” for a state whose pack is not yet in force would be reporting a permission the dial path itself refuses, which is the one direction a preview must never be wrong in.

contact_id
required
Contact Id
string
purpose
Purpose
string
default: marketing
Allowed values: marketing informational transactional

Successful Response

Media typeapplication/json
ContactDialability

The pre-dial verdict for one contact.

Evaluated over the contact’s own record - the denormalized DNC flag, the consent class, the jurisdictions, and the callee-local clock. Bureau scrub stages are not run here: they are billed per query and belong to a ScrubRun, so policy_snapshot.stages is empty and a dial still passes the full gate.

object
contact_id
required
Contact Id
string
phone_e164
required
Phone E164
string
purpose
required
Purpose
string
Allowed values: marketing informational transactional
dialable
required
Dialable
boolean
blocked_reasons
Blocked Reasons
Array<string>
policy_refusals
Policy Refusals
Array<string>
risk_flags
Risk Flags
Array<string>
jurisdictions
Jurisdictions
Array<string>
timezone
required
Timezone
string
evaluated_at
required
Evaluated At
string format: date-time
policy_snapshot
Policy Snapshot
object
key
additional properties
any
Example
{
"purpose": "marketing"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}