Skip to content

Read the answering policy one number answers by

GET
/v1/phone-numbers/{number_id}/answering-policy
curl --request GET \
--url https://api.vocapable.com/v1/phone-numbers/example/answering-policy \
--header 'Authorization: Bearer <token>'

The stored document, re-validated against the contract on the way out.

Readable without any carrier eligibility: a customer whose account has since been unverified must still be able to see what their number is configured to do, exactly as clearing a stale route never depends on a carrier.

number_id
required
Number Id
string

Successful Response

Media typeapplication/json
AnsweringPolicy

One number’s stored answering document, as its tenant reads it back.

version is server-owned and bumped on every write. It is not an optimistic-locking token for this endpoint: it exists so a signed callback URL can carry the exact document revision it was minted against, and a caller walking a policy that was edited mid-call is detected rather than silently re-routed.

object
id
required
Id
string
phone_number_id
required
Phone Number Id
string
timezone
required
Timezone
string
business_hours
Business Hours
object
key
additional properties
Array<object>
CallingWindow

One local-time window on one weekday.

object
start
required
Start
string
/^([01]\d|2[0-3]):[0-5]\d$/
end
required
End
string
/^([01]\d|2[0-3]):[0-5]\d$/
holiday_dates
Holiday Dates
Array<string>
open_steps
required
Open Steps
Array
One of: discriminator: type
MenuStep

Read options, then follow the branch the caller pressed.

timeout_branch is required rather than optional, and it is also where the invalid budget lands once it is spent: a menu whose silent or fumbling caller has nowhere to go re-prompts forever, which is the single most common way a keypress tree becomes a trap.

object
type
Type
string
default: menu
Allowed value: menu
prompt
required
Prompt
string
>= 1 characters <= 1000 characters
branches
required
Branches
object
>= 1 properties <= 12 properties
timeout_seconds
Timeout Seconds
integer
default: 5 >= 1 <= 30
max_invalid_attempts
Max Invalid Attempts
integer
default: 2 >= 1 <= 5
timeout_branch
required
Timeout Branch
Array
>= 1 items <= 12 items
One of: discriminator: type
object recursive
closed_steps
Closed Steps
Array
One of: discriminator: type
MenuStep

Read options, then follow the branch the caller pressed.

timeout_branch is required rather than optional, and it is also where the invalid budget lands once it is spent: a menu whose silent or fumbling caller has nowhere to go re-prompts forever, which is the single most common way a keypress tree becomes a trap.

object
type
Type
string
default: menu
Allowed value: menu
prompt
required
Prompt
string
>= 1 characters <= 1000 characters
branches
required
Branches
object
>= 1 properties <= 12 properties
timeout_seconds
Timeout Seconds
integer
default: 5 >= 1 <= 30
max_invalid_attempts
Max Invalid Attempts
integer
default: 2 >= 1 <= 5
timeout_branch
required
Timeout Branch
Array
>= 1 items <= 12 items
One of: discriminator: type
object recursive
version
required
Version
integer
created_at
required
Created At
string format: date-time
updated_at
required
Updated At
string format: date-time
Example
{
"open_steps": [
{
"type": "menu",
"timeout_seconds": 5,
"max_invalid_attempts": 2,
"timeout_branch": [
{
"type": "ring_humans",
"timeout_seconds": 20
}
]
}
],
"closed_steps": [
{
"type": "menu",
"timeout_seconds": 5,
"max_invalid_attempts": 2,
"timeout_branch": [
{
"type": "ring_humans",
"timeout_seconds": 20
}
]
}
]
}

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": {}
}
]
}