Skip to main content
POST
Create a call request

Authorizations

Authorization
string
header
required

Partner API key sent as a Bearer token:

Keys are issued by the GrowDental team (invite-only), shown once at creation, and stored server-side only as a SHA-256 hash. Key format: gd_live_ (or gd_test_) followed by a 43-character base62 secret (~256 bits of entropy). To rotate, request a new key, deploy it, then ask us to revoke the old one — both keys work during the overlap.

Headers

Idempotency-Key
string

Client-generated unique key (e.g. a UUID) making the POST safely retryable for 24 hours: retries with the same key and payload replay the original response; the same key with a different payload is rejected with 409 idempotency_conflict. Strongly recommended on every POST — required in practice for call-request creation, where a blind retry can dial patients twice.

Maximum string length: 255

Path Parameters

practiceId
string<uuid>
required

Practice ID (must be granted to your app — ungranted IDs return 404).

Body

application/json
contacts
object[]
required

Contacts to dial (1–50). Duplicate phone numbers (after E.164 normalization) are rejected with 400 duplicate_contacts.

Required array length: 1 - 50 elements
purpose
string
required

Why these contacts are being called — shapes the agent's framing of the conversation. Free-form slug; common values: recall_reminder, treatment_follow_up, appointment_confirmation, reactivation.

Required string length: 1 - 100
Example:

"recall_reminder"

context
string

Free-text context for the voice agent, applied to every contact. Structured context is the only way partners influence call content — prompts and agent internals are not exposed.

Maximum string length: 5000
window
object

Optional scheduling constraints. Calls are always confined to the practice's configured calling hours and days; a window can only narrow them further. daily_start/daily_end are practice-local times.

Response

Call request accepted and queued.

A call request with its window, context, and per-contact progress.

id
string<uuid>
required
status
enum<string>
required

queued until dialing begins, in_progress while contacts are being worked, completed when every contact is terminal.

Available options:
queued,
in_progress,
completed,
paused,
cancelled
practice_id
string<uuid>
required
purpose
string | null
required
counts
object
required

Aggregate contact-status counts for a call request. Keys beyond the listed ones may appear if new contact statuses are introduced.

created_at
string<date-time>
required
updated_at
string<date-time>
required
context
string | null
required

The free-text context supplied at creation.

window
object
required
contacts
object[]
required