# OurAiCalling > Documentation for OurAiCalling — build, deploy, and operate AI voice assistants. ## Docs - [Overview](https://docs.ouraicalling.com/index.md): What OurAiCalling is and how the pieces fit together - [Quickstart](https://docs.ouraicalling.com/quickstart.md): Create your first assistant and test it with a web call - [Account security](https://docs.ouraicalling.com/account-security.md): Protect sign-in with an authenticator app or email codes and review active device sessions. - [System prompt vs. flow builder](https://docs.ouraicalling.com/assistants/overview.md): Two ways to define assistant behavior — and when to use which - [Assistant compliance review](https://docs.ouraicalling.com/assistants/compliance-review.md): Automated prompt checks, blocking, clean rescans, and manual review - [Milian Copilot](https://docs.ouraicalling.com/assistants/milian-copilot.md): In-app AI that builds and edits assistants in your workspace - [Engine modes](https://docs.ouraicalling.com/assistants/engine-modes.md): Pipeline, realtime, and half-cascade — how your assistant hears and speaks - [Models & voices](https://docs.ouraicalling.com/assistants/models-and-voices.md): The model catalog, the voice library with previews, and fallback chains - [Languages](https://docs.ouraicalling.com/assistants/languages.md): Single-language setup, multilingual assistants, and automatic language switching - [Timezone](https://docs.ouraicalling.com/assistants/timezone.md): Every assistant has an IANA timezone — it anchors the get_current_time tool, the time system variables, and the business-hours check; campaigns can override it per call - [Knowledge base (RAG)](https://docs.ouraicalling.com/assistants/knowledge-base.md): Let assistants answer from your documents with retrieval-augmented generation - [Custom variables](https://docs.ouraicalling.com/assistants/variables.md): Define per-assistant variables and inject live values — from the API, campaign leads, an inbound webhook, or system context — into prompts, greetings, and tools - [Post-call analysis](https://docs.ouraicalling.com/assistants/analysis.md): Automatically score sentiment, success, and extract structured data from every call - [AI Quality Assurance](https://docs.ouraicalling.com/assistants/ai-quality-assurance.md): Run cohort QA over call transcripts — packs, credits, dashboard. - [Post-call webhooks](https://docs.ouraicalling.com/assistants/webhooks.md): Receive transcript, duration, input variables and post-call analysis after every call. - [Guardrails & conversation quality](https://docs.ouraicalling.com/assistants/conversation-quality.md): Background audio, interruptions, filler phrases, idle handling, consent, and guardrails - [Cross-channel customer memory](https://docs.ouraicalling.com/assistants/memory.md): Carry consented customer context across voice, email, web, and connected messaging channels - [Calendar & booking](https://docs.ouraicalling.com/assistants/calendar-booking.md): Let assistants check availability and book appointments mid-call — via Acuity Scheduling, Cal.com, Calendly, Google Calendar, Outlook, or the built-in booking engine - [Built-in tools](https://docs.ouraicalling.com/assistants/built-in-tools.md): Configure reliable mid-call actions: end or transfer a call, send SMS or email, check business hours, and schedule a confirmed callback - [Flow builder overview](https://docs.ouraicalling.com/flow-builder/overview.md): Turn a call into a graph of agents, tools, and decisions - [Node reference](https://docs.ouraicalling.com/flow-builder/nodes.md): Every node type in the flow builder, with its fields and behavior - [Best practices](https://docs.ouraicalling.com/flow-builder/best-practices.md): Patterns that make flows reliable in production - [Automations](https://docs.ouraicalling.com/automations/overview.md): Native workspace workflows — triggers, actions, run history, and assistant webhook binding. - [CRM sync](https://docs.ouraicalling.com/automations/crm-sync.md): Keep Audience contacts aligned with your CRM and write call outcomes back through automations. - [Buying phone numbers](https://docs.ouraicalling.com/telephony/phone-numbers.md): Search, buy, and manage numbers through the platform marketplace - [Carrier number import](https://docs.ouraicalling.com/telephony/carrier-import.md): Import existing Twilio, Telnyx, or Vonage numbers with automatic SIP routing - [BYO SIP trunk](https://docs.ouraicalling.com/telephony/sip-trunks.md): Connect your own SIP provider and use your existing numbers - [Inbound & outbound calls](https://docs.ouraicalling.com/telephony/inbound-outbound.md): How calls reach assistants — and how assistants place calls - [Outbound call limits](https://docs.ouraicalling.com/telephony/outbound-limits.md): Workspace-wide daily protection for calls placed through integrated numbers - [WhatsApp Voice](https://docs.ouraicalling.com/telephony/whatsapp-voice.md): How WhatsApp calling works on the platform — setup and product UX - [Messaging channels (Telegram, Slack, Messenger)](https://docs.ouraicalling.com/channels/messaging.md): Connect text bots to assistants via Settings → Channels - [WhatsApp (Text + Voice)](https://docs.ouraicalling.com/channels/whatsapp.md): Connect WhatsApp Business Cloud API for chat and platform voice calls - [WhatsApp Embedded Signup (Meta Tech Provider)](https://docs.ouraicalling.com/channels/whatsapp-embedded-signup.md): Set up your Meta app and connect WhatsApp inside Settings → Channels → WhatsApp - [Campaigns & leads](https://docs.ouraicalling.com/campaigns/overview.md): Run multi-channel outreach over lead lists - [Dialer, retries & compliance](https://docs.ouraicalling.com/campaigns/dialer-and-compliance.md): Parallel dialing, retry logic, calling windows, DNC lists, and voicemail handling - [Audience Call QA](https://docs.ouraicalling.com/audience/call-qa.md): Use per-contact call quality averages in Audience, segments, History, REST and MCP. - [Live monitoring & supervisor](https://docs.ouraicalling.com/monitoring/live-monitoring.md): Watch live transcripts, listen in, whisper to the AI, barge in, or take over - [Natural-language dashboards](https://docs.ouraicalling.com/analytics/natural-language-dashboards.md): Turn a plain-language analytics question into safe, reviewable dashboard insights. - [Email history](https://docs.ouraicalling.com/email/history.md): Review assistant email conversations alongside calls. - [Web widget](https://docs.ouraicalling.com/web-widget.md): Embed your assistant as a voice and chat widget on any website - [Consent & compliance](https://docs.ouraicalling.com/settings/consent-compliance.md): Choose universal or per-channel opt-outs and manage cross-channel suppression records. - [Data retention](https://docs.ouraicalling.com/settings/data-retention.md): Control how long each workspace data channel is kept. - [Migrate from Famulor 1.0](https://docs.ouraicalling.com/settings/famulor-migration.md): Preview and safely import assistants, tools, knowledge-base shells, campaigns, and automations - [Tenants & whitelabel](https://docs.ouraicalling.com/admin/tenants-and-whitelabel.md): The role hierarchy, white-label workspaces, and impersonation - [White Label API](https://docs.ouraicalling.com/admin/whitelabel-api.md): Manage your reseller platform's customers programmatically — list, register, mint tokens, log in, log out, and transfer credits - [Plans & limits](https://docs.ouraicalling.com/admin/plans-and-limits.md): How plans gate features and limits — for the platform and for tenants - [Per-user model access](https://docs.ouraicalling.com/admin/per-user-models.md): Allow or block individual models for a single user — platform admin only - [Platform monitoring](https://docs.ouraicalling.com/admin/platform-monitoring.md): Watch every live call across all tenants — platform admin only - [Minute balances & transfers](https://docs.ouraicalling.com/admin/balances-and-transfers.md): The prepaid minute ledger, transfers, and admin adjustments - [Stripe & Stripe Connect](https://docs.ouraicalling.com/admin/stripe.md): Payments for platform plans — and how tenants charge their own customers - [How usage is billed](https://docs.ouraicalling.com/billing/minutes.md): Plan credits, top-up credits, and how calls consume your balance - [Invoices and payment recovery](https://docs.ouraicalling.com/billing/manage-billing.md): Pay an open invoice, update payment details, and understand what happens after a failed plan payment - [MCP endpoint](https://docs.ouraicalling.com/api/mcp.md): Connect Claude, ChatGPT, or any MCP client to your account - [Tools & webhooks](https://docs.ouraicalling.com/api/tools-and-webhooks.md): Give assistants tools during calls, and receive results after them - [API introduction](https://docs.ouraicalling.com/api-reference/introduction.md): Authenticate against the REST API and start building - [Get current credential](https://docs.ouraicalling.com/api-reference/account/get-current-credential.md): Self-inspection of the calling API key: key metadata, workspace (tenant), active plan, and effective limits/feature toggles (`-1` = unlimited, `0` = disabled). No scope required — any valid key works. - [Get balance](https://docs.ouraicalling.com/api-reference/billing/get-balance.md): Minutes and credits balance of the key owner plus a summary of the active plan. **Required scope:** `billing:read` (keys without scope restrictions have full access). - [List transactions](https://docs.ouraicalling.com/api-reference/billing/list-transactions.md): Workspace balance ledger, newest first. `workspace_balances` is the materialized balance for the API key's active workspace. `note` contains a customer-facing description; payment-provider IDs and internal reconciliation references are never returned. **Required scope:** `billing:read` (keys without… - [Create invoice payment link](https://docs.ouraicalling.com/api-reference/billing/create-invoice-payment-link.md): Creates a short-lived, one-time billing link on the current platform domain. The link opens the latest payable plan invoice and falls back to billing management when no payable invoice exists. No payment-provider identifiers are returned. **Required scope:** `billing:read` (keys without scope restri… - [Create billing management link](https://docs.ouraicalling.com/api-reference/billing/create-billing-management-link.md): Creates a short-lived, one-time billing link on the current platform domain for invoice history, payment methods, and cancellation. Plan changes are disabled and remain available only through the validated plan page. No payment-provider identifiers are returned. **Required scope:** `billing:read` (k… - [List API keys](https://docs.ouraicalling.com/api-reference/api-keys/list-api-keys.md): List the API keys created in the calling workspace, including revoked ones (`revoked_at` set). Never returns the secret — only `prefix` plus metadata; use it to audit which keys exist and when each was last used. **Required scope:** `settings:read`. - [Create an API key](https://docs.ouraicalling.com/api-reference/api-keys/create-an-api-key.md): Mints a new self-service API key for the calling workspace. `scopes` must be a subset of the calling credential's own scopes — a key can never mint another key with broader access than itself (a caller with unrestricted access, i.e. no scopes or `*`, may grant any scope, and an omitted `scopes` defa… - [Get an API key](https://docs.ouraicalling.com/api-reference/api-keys/get-an-api-key.md): Metadata for a single API key (never the secret). 404 if it belongs to another workspace. **Required scope:** `settings:read`. - [Revoke an API key](https://docs.ouraicalling.com/api-reference/api-keys/revoke-an-api-key.md): Revokes (soft-deletes) an API key. Idempotent — revoking an already-revoked key still returns `200 { revoked: true }`. **Required scope:** `settings:write`. - [Preview or import Famulor 1.0 data](https://docs.ouraicalling.com/api-reference/migrations/preview-or-import-famulor-10-data.md): Use `action: preview` first to list source resources, mappings and warnings. Use `action: import` with exact selected source IDs to create target resources. The Famulor 1.0 source API key is request-only and is never logged, persisted or returned. Built-in tools are created in the central Tools libr… - [List automations](https://docs.ouraicalling.com/api-reference/automations/list-automations.md): Returns native workspace automations plus platform entitlement/run allowance. **Required scope:** `automations:read` or the legacy `calls:read`. The workspace plan must include `automation_platform`. - [List CRM syncs](https://docs.ouraicalling.com/api-reference/automations/list-crm-syncs.md): List recurring inbound CRM-to-Audience syncs. Requires workspace Beta Features, the automation platform entitlement, CRM sync plan capacity, and `automations:read` or `calls:read`. - [Create CRM sync](https://docs.ouraicalling.com/api-reference/automations/create-crm-sync.md): Create an inbound sync using an existing API connection. The provider is resolved from the tenant-scoped connection and cannot be supplied by the caller. Requires `automations:write` or `calls:write`. - [Discover CRM objects and fields](https://docs.ouraicalling.com/api-reference/automations/discover-crm-objects-and-fields.md): Discover importable objects for a connection. Include `object_type` to receive fields and list/view/filter sources. Set `include_preview` with a field mapping to receive up to five read-only mapped sample records after expression evaluation and phone/email normalization. Credentials are decrypted on… - [Get CRM sync](https://docs.ouraicalling.com/api-reference/automations/get-crm-sync.md) - [Update CRM sync](https://docs.ouraicalling.com/api-reference/automations/update-crm-sync.md): Patch source selection, field mapping, interval, policies, or active/paused status. Mapping and source changes reset the cursor but keep the existing schedule; use POST /crm-syncs/{id}/runs to sync immediately. Requires `automations:write` or `calls:write`. - [Delete CRM sync](https://docs.ouraicalling.com/api-reference/automations/delete-crm-sync.md): Delete the sync configuration and memberships. Imported Audience contacts are kept. Requires `automations:write` or `calls:write`. - [List CRM sync runs](https://docs.ouraicalling.com/api-reference/automations/list-crm-sync-runs.md): List durable run history and counters. Requires `automations:read` or `calls:read`. - [Run CRM sync](https://docs.ouraicalling.com/api-reference/automations/run-crm-sync.md): Queue a durable manual CRM sync run. Requires `automations:write` or `calls:write`. - [List assistants](https://docs.ouraicalling.com/api-reference/assistants/list-assistants.md): Paginated list of assistants in your workspace, newest first. **Required scope:** `assistants:read` (keys without scope restrictions have full access). - [Create an assistant](https://docs.ouraicalling.com/api-reference/assistants/create-an-assistant.md): Creates an assistant. Default agent type is **Single prompt** (`flow_json` omitted or `null` — uses `system_prompt` + greeting). For **Conversational flow**, pass a Flow JSON v1 object in `flow_json` (typically a Start→Agent→End seed). Prompt templates are listed via `GET /prompt-templates` and appl… - [Get an assistant](https://docs.ouraicalling.com/api-reference/assistants/get-an-assistant.md): **Required scope:** `assistants:read` (keys without scope restrictions have full access). - [Get assistant compliance review](https://docs.ouraicalling.com/api-reference/assistants/get-assistant-compliance-review.md): Returns the customer-visible automated compliance status, score, flags, reason, and manual-review state. Internal model, workflow, token, and prompt-snapshot fields are omitted. **Required scope:** `assistants:read`. - [Request manual compliance review](https://docs.ouraicalling.com/api-reference/assistants/request-manual-compliance-review.md): Submits the current blocked assistant snapshot for manual platform review. **Required scope:** `assistants:write`. - [Update an assistant](https://docs.ouraicalling.com/api-reference/assistants/update-an-assistant.md): Partial update — only the provided fields change. Every update creates a version snapshot. `PUT` is accepted as an alias of `PATCH`. **Required scope:** `assistants:write` (keys without scope restrictions have full access). - [Delete an assistant](https://docs.ouraicalling.com/api-reference/assistants/delete-an-assistant.md): Deletes the assistant permanently. Phone numbers pointing at it are unassigned. **Required scope:** `assistants:write` (keys without scope restrictions have full access). - [List voices](https://docs.ouraicalling.com/api-reference/voices/list-voices.md): Complete paginated voice library per TTS provider (live provider data with a static fallback catalog). ElevenLabs voices with custom rates or credit multipliers are excluded. User-created cloned voices are returned only to credentials bound to their creator. Use a voice's `id` as `tts_voice` on an a… - [List conversation history](https://docs.ouraicalling.com/api-reference/history/list-conversation-history.md): Calls and assistant email conversations in your workspace, globally sorted by latest activity. Failed outbound call rows include the provider-neutral `failure` object. Every inbound and outbound email turn with the same stable `thread_id` is grouped into one conversation row. Email reply states are… - [Get an email conversation](https://docs.ouraicalling.com/api-reference/history/get-an-email-conversation.md): Returns every inbound and outbound turn in the email thread in chronological order, including stable thread and immediate-parent IDs, full plain-text bodies, reply states/errors, and attachment metadata. Attachment contents are not retained. **Required scope:** `calls:read`. - [List calls](https://docs.ouraicalling.com/api-reference/calls/list-calls.md): Calls in your workspace, newest first. Failed outbound calls include a provider-neutral `failure` object with stable retry/action guidance. **Required scope:** `calls:read` (keys without scope restrictions have full access). - [Start an outbound call](https://docs.ouraicalling.com/api-reference/calls/start-an-outbound-call.md): Places an outbound call: the assistant must be active and needs an outbound-capable phone number (assigned to it, or passed via `phone_number_id`). Returns the created call immediately (status `queued`) — poll `GET /calls/{id}` or use the assistant's webhook for the result and provider-neutral `fail… - [Get a call](https://docs.ouraicalling.com/api-reference/calls/get-a-call.md): Call details including the transcript, the AI summary, provider-neutral failure guidance, the chronological event log, and a signed `recording_url` (valid 1 hour) if a recording exists. Failed transfer events expose the same safe failure shape without raw SIP or SDK diagnostics. **Required scope:**… - [Get a call recording URL](https://docs.ouraicalling.com/api-reference/calls/get-a-call-recording-url.md): Returns a time-limited signed download URL for the call recording. 404 if the call does not exist or has no recording. **Required scope:** `calls:read` (keys without scope restrictions have full access). - [List campaigns](https://docs.ouraicalling.com/api-reference/campaigns/list-campaigns.md): **Required scope:** `campaigns:read` (keys without scope restrictions have full access). - [Create a campaign](https://docs.ouraicalling.com/api-reference/campaigns/create-a-campaign.md): Creates a campaign in status `draft`. Dialer settings (concurrency, retries, calling windows, AMD/voicemail behavior) can be set right away. The plan limit `max_campaigns` is enforced (archived campaigns do not count). **Required scope:** `campaigns:write` (keys without scope restrictions have full… - [Get a campaign](https://docs.ouraicalling.com/api-reference/campaigns/get-a-campaign.md): Campaign details including `total_leads`. **Required scope:** `campaigns:read` (keys without scope restrictions have full access). - [Update a campaign](https://docs.ouraicalling.com/api-reference/campaigns/update-a-campaign.md): Updates name, assistant and/or dialer settings. `voicemail_action: "drop_message"` requires an effective `voicemail_message`. **Required scope:** `campaigns:write` (keys without scope restrictions have full access). - [Delete a campaign](https://docs.ouraicalling.com/api-reference/campaigns/delete-a-campaign.md): Deletes the campaign. Its leads are kept (their campaign reference is cleared). **Required scope:** `campaigns:write` (keys without scope restrictions have full access). - [Start a campaign](https://docs.ouraicalling.com/api-reference/campaigns/start-a-campaign.md): Sets the campaign to `running` and triggers the first dialer wave immediately; subsequent waves run on a schedule. Calling windows, DNC list and concurrency are enforced by the dialer. **Required scope:** `campaigns:write` (keys without scope restrictions have full access). - [Stop a campaign](https://docs.ouraicalling.com/api-reference/campaigns/stop-a-campaign.md): Pauses a running campaign (status `paused`). Calls already in progress finish normally; the dialer stops dialing new leads. Returns 409 if the campaign is not running. **Required scope:** `campaigns:write` (keys without scope restrictions have full access). - [Get campaign stats](https://docs.ouraicalling.com/api-reference/campaigns/get-campaign-stats.md): Progress and performance aggregates for a campaign (total leads, completed leads, calls made, total call duration, total call cost). **Required scope:** `campaigns:read` (the legacy `calls:read` scope is also accepted; keys without scope restrictions have full access). - [List Audience contacts](https://docs.ouraicalling.com/api-reference/leads/list-audience-contacts.md): List contacts across all campaigns with channel and tenant-scoped Call QA filters. Channel matches use linked calls, SMS, email, messaging conversations and contact channel profiles. Repeating `channel` matches any selected channel. QA uses the per-call History scorecard, counts every call once and… - [List leads](https://docs.ouraicalling.com/api-reference/leads/list-leads.md): Leads of a campaign, newest first. Every lead includes the derived `display_status` (see src/lib/leads/status.ts). **Required scope:** `leads:read` (keys without scope restrictions have full access). - [Add leads](https://docs.ouraicalling.com/api-reference/leads/add-leads.md): Adds one lead (body = a single lead object; `data` in the response is the created lead) or many (body = an array of lead objects, max 1000; `data` is the array of created leads and `meta` reports `created`, `dnc_flagged` and `invalid` rows). Phone numbers are normalized to E.164. Numbers on your Do-… - [Get a campaign lead](https://docs.ouraicalling.com/api-reference/leads/get-a-campaign-lead.md): Returns editable contact data and user-managed `custom_fields` plus a separate read-only `system_variables` object. **Required scope:** `leads:read`. - [Update a campaign lead](https://docs.ouraicalling.com/api-reference/leads/update-a-campaign-lead.md): Updates name, phone, email, tags, or user-managed custom fields. System variables and channel identities are read-only. **Required scope:** `leads:write`. - [Remove a lead from a campaign](https://docs.ouraicalling.com/api-reference/leads/remove-a-lead-from-a-campaign.md): Removes the lead from campaign execution while retaining the Audience contact, calls, and completed campaign history. This operation never permanently deletes the contact. **Required scope:** `leads:write` (keys without scope restrictions have full access). - [List campaign variable sources](https://docs.ouraicalling.com/api-reference/leads/list-campaign-variable-sources.md): Lists system variables, workspace lead attributes, and assistant variables available for campaign and WhatsApp template mappings. **Required scope:** `leads:read`. - [Assign leads to a campaign](https://docs.ouraicalling.com/api-reference/leads/assign-leads-to-a-campaign.md): Assign leads to a campaign — from a saved segment (`segment_id`) OR an explicit list of lead IDs (`lead_ids`); provide exactly one of the two. Leads without a campaign are moved into this campaign directly; leads that belong to ANOTHER campaign are copied (the original lead is left untouched — campa… - [List segments](https://docs.ouraicalling.com/api-reference/segments/list-segments.md): List all segments (saved, dynamic lead filters) of the workspace. **Required scope:** `segments:read` (the legacy `calls:read` scope is also accepted; keys without scope restrictions have full access). - [Create a segment](https://docs.ouraicalling.com/api-reference/segments/create-a-segment.md): Save a lead filter as a reusable segment. Its matches are resolved live (dynamic, not a snapshot) — see `GET /segments/{id}/leads` and `POST /campaigns/{id}/leads/assign`. **Required scope:** `segments:write` (the legacy `calls:write` scope is also accepted; keys without scope restrictions have full… - [Get a segment](https://docs.ouraicalling.com/api-reference/segments/get-a-segment.md): Read a single segment. **Required scope:** `segments:read` (the legacy `calls:read` scope is also accepted; keys without scope restrictions have full access). - [Update a segment](https://docs.ouraicalling.com/api-reference/segments/update-a-segment.md): Partial update — only the provided fields change. **Required scope:** `segments:write` (the legacy `calls:write` scope is also accepted; keys without scope restrictions have full access). - [Delete a segment](https://docs.ouraicalling.com/api-reference/segments/delete-a-segment.md): Delete a segment. The leads it currently matches are not affected. **Required scope:** `segments:write` (the legacy `calls:write` scope is also accepted; keys without scope restrictions have full access). - [List a segment's leads](https://docs.ouraicalling.com/api-reference/segments/list-a-segments-leads.md): Leads currently matching the segment's saved filters, newest first, paginated. Every lead includes the derived `display_status`. Resolution is capped at 5000 matching leads — `meta.pagination.total` reflects that cap, not an unbounded count. - [List phone numbers](https://docs.ouraicalling.com/api-reference/phone-numbers/list-phone-numbers.md): Phone numbers of your workspace, newest first. **Required scope:** `phone_numbers:read` (keys without scope restrictions have full access). - [Buy a phone number](https://docs.ouraicalling.com/api-reference/phone-numbers/buy-a-phone-number.md): Starts a payment-confirmed marketplace purchase. The response is pending and includes `checkout_url`; routing and call access are provisioned only after verified payment. Failed, expired, or unpaid purchases release the held number. Requires a user-scoped API key. Pick a number from `GET /phone-numb… - [Search purchasable numbers](https://docs.ouraicalling.com/api-reference/phone-numbers/search-purchasable-numbers.md): Searches the marketplace for purchasable numbers, including monthly price and setup fee. The country and number type must be enabled by the platform admin; countries with regulatory requirements additionally need an approved regulatory bundle on file. **Required scope:** `phone_numbers:read` (keys w… - [Get a phone number](https://docs.ouraicalling.com/api-reference/phone-numbers/get-a-phone-number.md): **Required scope:** `phone_numbers:read` (keys without scope restrictions have full access). - [Update a phone number](https://docs.ouraicalling.com/api-reference/phone-numbers/update-a-phone-number.md): Assigns an assistant / SIP trunk and toggles inbound/outbound directions. Changing the assistant, trunk or inbound direction re-creates the inbound SIP dispatch rule. **Required scope:** `phone_numbers:write` (keys without scope restrictions have full access). - [Release or delete a phone number](https://docs.ouraicalling.com/api-reference/phone-numbers/release-or-delete-a-phone-number.md): Release a phone number. Paid marketplace numbers are soft-scheduled: Stripe cancels at period end, the number stays active until then (`release_scheduled_at`), then the provider number is returned and status becomes `released`. Complimentary plan numbers and unpaid purchases are released immediately… - [Send an SMS](https://docs.ouraicalling.com/api-reference/sms/send-an-sms.md): Send an outbound SMS from a workspace phone number that has outbound SMS enabled (platform marketplace or Twilio BYOC). US 10DLC senders must be registered with an approved A2P campaign in Twilio. Platform numbers charge SMS credits including carrier pass-through; BYOC charges only the platform SMS… - [List SIP trunks](https://docs.ouraicalling.com/api-reference/sip-trunks/list-sip-trunks.md): SIP trunks of your workspace. `auth_password` is never returned. **Required scope:** `sip_trunks:read` (keys without scope restrictions have full access). - [Create a SIP trunk](https://docs.ouraicalling.com/api-reference/sip-trunks/create-a-sip-trunk.md): Registers your own SIP provider: creates a platform inbound + outbound trunk pair. Supports DID or Extension (`trunk_kind`), calling-number format, transport, and advanced options (secure trunking, headers, codecs). Use this to bring your own numbers instead of buying from the marketplace. See [BYO… - [Get a SIP trunk](https://docs.ouraicalling.com/api-reference/sip-trunks/get-a-sip-trunk.md): **Required scope:** `sip_trunks:read` (keys without scope restrictions have full access). - [Delete a SIP trunk](https://docs.ouraicalling.com/api-reference/sip-trunks/delete-a-sip-trunk.md): Deletes the trunk including its platform trunk pair and the dispatch rules of its numbers. **Required scope:** `sip_trunks:write` (keys without scope restrictions have full access). - [List carrier connections](https://docs.ouraicalling.com/api-reference/carrier-connections/list-carrier-connections.md): Lists BYOC connections and their imported numbers. Secrets are never returned. **Required scope:** `sip_trunks:read`. - [Create a carrier connection](https://docs.ouraicalling.com/api-reference/carrier-connections/create-a-carrier-connection.md): Validates carrier credentials and stores secrets encrypted. Provider routing is configured on the first number import. **Required scope:** `sip_trunks:write`. - [Get a carrier connection](https://docs.ouraicalling.com/api-reference/carrier-connections/get-a-carrier-connection.md): **Required scope:** `sip_trunks:read`. - [Update a carrier connection](https://docs.ouraicalling.com/api-reference/carrier-connections/update-a-carrier-connection.md): Changes the SIP region and repairs the carrier-side inbound route. **Required scope:** `sip_trunks:write`. - [Disconnect a carrier connection](https://docs.ouraicalling.com/api-reference/carrier-connections/disconnect-a-carrier-connection.md): Safely detaches imported numbers, removes their platform trunks, deletes provider resources, and forgets credentials. **Required scope:** `sip_trunks:write`. - [List carrier numbers available to import](https://docs.ouraicalling.com/api-reference/carrier-connections/list-carrier-numbers-available-to-import.md): Lists carrier-owned numbers and flags routing conflicts and numbers already imported into this workspace. **Required scope:** `sip_trunks:read`. - [Import carrier numbers](https://docs.ouraicalling.com/api-reference/carrier-connections/import-carrier-numbers.md): Configures carrier routing and creates platform SIP trunks. Returns one result per number; individual failures do not fail the whole batch. **Required scope:** `sip_trunks:write`. - [Remove an imported carrier number](https://docs.ouraicalling.com/api-reference/carrier-connections/remove-an-imported-carrier-number.md): Detaches one number at the carrier and removes its platform SIP resources. **Required scope:** `sip_trunks:write`. - [Troubleshoot a carrier connection](https://docs.ouraicalling.com/api-reference/carrier-connections/troubleshoot-a-carrier-connection.md): Checks credentials, provider routing, platform trunks, and dispatch rules; optionally repairs safe drift. **Required scope:** `sip_trunks:write`. - [Get outbound call limits](https://docs.ouraicalling.com/api-reference/settings/get-outbound-call-limits.md): Returns today's workspace-wide usage, remaining allowance, reset time, and request history for outbound calls through integrated numbers. Inbound, web, and customer-owned SIP trunk calls do not count. **Required scope:** `settings:read`. - [Request an outbound call limit increase](https://docs.ouraicalling.com/api-reference/settings/request-an-outbound-call-limit-increase.md): Submits a workspace-wide increase request for review. Only workspace owners and admins can submit a request, and only one request can be pending at a time. **Required scope:** `settings:write`. - [Get consent compliance mode](https://docs.ouraicalling.com/api-reference/settings/get-consent-compliance-mode.md): Reads how marketing opt-outs are enforced in the workspace. `universal` blocks every linked channel after any opt-out; `per_channel` blocks only the originating channel. **Required scope:** `settings:read`. - [Update consent compliance mode](https://docs.ouraicalling.com/api-reference/settings/update-consent-compliance-mode.md): Updates marketing opt-out enforcement. Universal mode is always available. Per-channel mode requires the Consent & Compliance plan feature; suppression enforcement itself is never disabled. Existing suppression records retain their original scope and `mode_at_opt_out`. **Required scope:** `settings:… - [Get data retention settings](https://docs.ouraicalling.com/api-reference/settings/get-data-retention-settings.md): Reads per-channel workspace overrides, the governing plan default and limits, and whether the current plan includes Data Retention. A `null` channel value follows `plan_default_days`. **Required scope:** `settings:read`. - [Update data retention settings](https://docs.ouraicalling.com/api-reference/settings/update-data-retention-settings.md): Updates one or more per-channel retention overrides in months. Set a field to `null` to restore the plan default. Values are clamped to the governing platform or reseller limits. Requires the Data Retention plan feature. **Required scope:** `settings:write`. - [List active account sessions](https://docs.ouraicalling.com/api-reference/settings/list-active-account-sessions.md): Lists active sign-in sessions for the user associated with the API credential. Session IDs are opaque revocation handles; authentication tokens, IP addresses, and native authentication-provider identifiers are never returned. **Required scope:** `settings:read`. - [Sign out an account session](https://docs.ouraicalling.com/api-reference/settings/sign-out-an-account-session.md): Revokes one active sign-in session belonging to the user associated with the API credential. The session handle comes from `GET /settings/sessions`. **Required scope:** `settings:write`. - [List suppression entries](https://docs.ouraicalling.com/api-reference/suppression/list-suppression-entries.md): Lists active marketing suppressions across voice, SMS, email, and supported messaging channels. Results expose the public contact identity, scope, origin channel, source, and consent mode captured at opt-out. **Required scope:** `suppression:read` (keys without scope restrictions have full access). - [Add a suppression entry](https://docs.ouraicalling.com/api-reference/suppression/add-a-suppression-entry.md): Records a marketing opt-out for a contact identified by contact ID, phone, or email. The current workspace consent mode determines whether the resulting scope is universal or limited to the originating channel. **Required scope:** `suppression:write`. - [Restore contact consent](https://docs.ouraicalling.com/api-reference/suppression/restore-contact-consent.md): Revokes one active suppression and appends an opt-in audit event; compliance history is not erased. `{id}` accepts the suppression entry ID, an E.164 phone number, or an email address. Prefer the entry ID when a contact has multiple channel-specific records. **Required scope:** `suppression:write`. - [List knowledge bases](https://docs.ouraicalling.com/api-reference/knowledge-bases/list-knowledge-bases.md): **Required scope:** `knowledge:read` (keys without scope restrictions have full access). - [Create a knowledge base](https://docs.ouraicalling.com/api-reference/knowledge-bases/create-a-knowledge-base.md): Creates an empty knowledge base. Attach it to an assistant via the assistant's `knowledgebase_id`. **Required scope:** `knowledge:write` (keys without scope restrictions have full access). - [Get a knowledge base](https://docs.ouraicalling.com/api-reference/knowledge-bases/get-a-knowledge-base.md): **Required scope:** `knowledge:read` (keys without scope restrictions have full access). - [Delete a knowledge base](https://docs.ouraicalling.com/api-reference/knowledge-bases/delete-a-knowledge-base.md): Deletes the knowledge base including all its documents and chunks. **Required scope:** `knowledge:write` (keys without scope restrictions have full access). - [List FAQ entries and knowledge gaps](https://docs.ouraicalling.com/api-reference/knowledge-bases/list-faq-entries-and-knowledge-gaps.md): Lists approved FAQ entries or the human-review knowledge-gap inbox. **Required scope:** `knowledge:read`. Beta Features must be enabled for the workspace. - [Create and publish an FAQ entry](https://docs.ouraicalling.com/api-reference/knowledge-bases/create-and-publish-an-faq-entry.md): Creates human-approved FAQ knowledge and indexes it immediately. **Required scope:** `knowledge:write`. - [Get an FAQ entry](https://docs.ouraicalling.com/api-reference/knowledge-bases/get-an-faq-entry.md) - [Review or update an FAQ entry](https://docs.ouraicalling.com/api-reference/knowledge-bases/review-or-update-an-faq-entry.md): Approval requires an answer and publishes it to retrieval. **Required scope:** `knowledge:write`. - [Delete an FAQ entry](https://docs.ouraicalling.com/api-reference/knowledge-bases/delete-an-faq-entry.md) - [Add a document](https://docs.ouraicalling.com/api-reference/knowledge-bases/add-a-document.md): Adds a document from raw text (`content`) or a file URL (`url` — PDF/DOCX/TXT/MD/CSV/HTML, downloaded server-side, max 20 MB). Exactly one of `content` / `url` must be provided. Chunking and embeddings run synchronously; the response contains the final document with status `ready` (or `error` + `err… - [List crawl sources](https://docs.ouraicalling.com/api-reference/knowledge-bases/list-crawl-sources.md): List the website crawl sources of a knowledge base. Each source crawls pages under a root URL (same host only, static HTML — no JavaScript rendering) into knowledge documents. **Required scope:** `knowledge:read` (keys without scope restrictions have full access). - [Create a crawl source](https://docs.ouraicalling.com/api-reference/knowledge-bases/create-a-crawl-source.md): Register a website as a crawl source for a knowledge base. The crawler fetches pages under `root_url` (same host only, static HTML — no JavaScript rendering, max 2 MB per page), indexes them as documents and charges credits per crawled page. Trigger a crawl with `POST /knowledge-bases/{id}/crawl-sou… - [Get a crawl source](https://docs.ouraicalling.com/api-reference/knowledge-bases/get-a-crawl-source.md): Fetch a single website crawl source, including its last run status, `pages_crawled`, `credits_spent` and `last_error`. **Required scope:** `knowledge:read` (keys without scope restrictions have full access). - [Update a crawl source](https://docs.ouraicalling.com/api-reference/knowledge-bases/update-a-crawl-source.md): Update a website crawl source (root URL, include paths, page limit, auto-sync settings). **Required scope:** `knowledge:write` (keys without scope restrictions have full access). - [Delete a crawl source](https://docs.ouraicalling.com/api-reference/knowledge-bases/delete-a-crawl-source.md): Delete a website crawl source. Documents already created by past crawls are kept; only future syncs stop. **Required scope:** `knowledge:write` (keys without scope restrictions have full access). - [Run a crawl now](https://docs.ouraicalling.com/api-reference/knowledge-bases/run-a-crawl-now.md): Crawl a website source immediately (synchronous). Fetches pages under the root URL, re-indexes changed pages (unchanged pages are skipped via content hash — no re-embedding, no credits) and charges credits per crawled page. Aborts gracefully when the account runs out of credits (partial results kept… - [List calendar integrations](https://docs.ouraicalling.com/api-reference/integrations/list-calendar-integrations.md): List all calendar integrations of the account (Cal.com, Calendly, Acuity Scheduling, Google Calendar, Outlook, native booking engine). Secret values in configs are always masked. Assign integrations to an assistant via `PUT /assistants/{id}/integrations` — the assistant then gets availability and bo… - [Create a calendar integration](https://docs.ouraicalling.com/api-reference/integrations/create-a-calendar-integration.md): Create a calendar integration. The connection is verified **before** saving (Cal.com: API key + event type; Calendly: OAuth `connection_id` + public `event_type_id`; Acuity: OAuth `connection_id` + numeric `appointment_type_id` and optional `calendar_id`; google/outlook: the calendar connection must… - [Get a calendar integration](https://docs.ouraicalling.com/api-reference/integrations/get-a-calendar-integration.md): Read a single calendar integration. Secret values are masked. - [Update a calendar integration](https://docs.ouraicalling.com/api-reference/integrations/update-a-calendar-integration.md): Update a calendar integration. `provider` is immutable. Send `•••` for a secret config field to keep the stored value; config changes re-run the connection test and reset `status` to `ok`. - [Delete a calendar integration](https://docs.ouraicalling.com/api-reference/integrations/delete-a-calendar-integration.md): Permanently delete a calendar integration. Assistant assignments are removed automatically. - [List assistant integrations](https://docs.ouraicalling.com/api-reference/integrations/list-assistant-integrations.md): List the calendar integrations assigned to an assistant. Each assignment adds `check_availability` and `book_appointment` (Calendly link mode: `send_booking_link`) plus provider-supported appointment lookup, cancellation, and rescheduling tools. - [Replace assistant integrations](https://docs.ouraicalling.com/api-reference/integrations/replace-assistant-integrations.md): REPLACE the integration assignments of an assistant with the given set. Pass an empty array to remove all assignments (possible even after a plan downgrade); assigning requires the `calendar_integrations` plan feature and an admin-level credential. - [List booking event types](https://docs.ouraicalling.com/api-reference/bookings/list-booking-event-types.md): List the event types of the native booking engine. Each active event type has a public, iframe-embeddable booking page at `/book/{workspace}/{slug}` and can be attached to assistants via a `native` calendar integration. - [Create a booking event type](https://docs.ouraicalling.com/api-reference/bookings/create-a-booking-event-type.md): Create an event type. The slug is **unique within the workspace** and becomes the public booking page URL `/book/{workspace}/{slug}`. Requires an admin-level credential; plan gate: `calendar_integrations`. - [Get a booking event type](https://docs.ouraicalling.com/api-reference/bookings/get-a-booking-event-type.md): Read a single event type. - [Update a booking event type](https://docs.ouraicalling.com/api-reference/bookings/update-a-booking-event-type.md): Update an event type; only provided fields change. - [Delete a booking event type](https://docs.ouraicalling.com/api-reference/bookings/delete-a-booking-event-type.md): Permanently delete an event type. **All its bookings are deleted with it** (ON DELETE CASCADE). - [List bookings](https://docs.ouraicalling.com/api-reference/bookings/list-bookings.md): List bookings of the native booking engine. Bookings are created by the public booking page, by assistants mid-call (`book_appointment`), or via the public page API — this management API is read + reschedule + cancel only. Use `view` for the dashboard-style lists, or `status` for an exact status; th… - [Get a booking](https://docs.ouraicalling.com/api-reference/bookings/get-a-booking.md): Read a single booking. - [Cancel a booking](https://docs.ouraicalling.com/api-reference/bookings/cancel-a-booking.md): Cancel a confirmed booking. Sends a `METHOD:CANCEL` ICS email to the invitee and removes the pushed external calendar event (both best-effort). Idempotent for already-cancelled bookings; bookings that already started return `400`. - [List custom dashboards](https://docs.ouraicalling.com/api-reference/dashboards/list-custom-dashboards.md): Returns the workspace's custom dashboards in display order. **Required scope:** `dashboards:read` or the legacy `calls:read`. The workspace plan must include `custom_dashboards`. - [Create a custom dashboard](https://docs.ouraicalling.com/api-reference/dashboards/create-a-custom-dashboard.md): Creates a dashboard in the API key's workspace. **Required scope:** `dashboards:write` or `calls:write`. - [Get a custom dashboard](https://docs.ouraicalling.com/api-reference/dashboards/get-a-custom-dashboard.md): **Required scope:** `dashboards:read` or `calls:read`. - [Update a custom dashboard](https://docs.ouraicalling.com/api-reference/dashboards/update-a-custom-dashboard.md): Rename or reorder a dashboard. **Required scope:** `dashboards:write` or `calls:write`. - [Delete a custom dashboard](https://docs.ouraicalling.com/api-reference/dashboards/delete-a-custom-dashboard.md): Deletes the dashboard. Reusable widget records are retained. **Required scope:** `dashboards:write` or `calls:write`. - [Get dashboard analytics](https://docs.ouraicalling.com/api-reference/dashboards/get-dashboard-analytics.md): Tenant-scoped call KPIs and deltas, zero-filled daily activity, breakdowns, assistant ranking, campaign progress, recent calls, and plan-gated module summaries. Date buckets follow the workspace timezone. **Required scope:** `dashboards:read` or `calls:read`. - [Preview a natural-language dashboard plan](https://docs.ouraicalling.com/api-reference/dashboards/preview-a-natural-language-dashboard-plan.md): Maps a plain-language request to the approved semantic analytics catalog. This preview never writes data and never accepts SQL, table names, or arbitrary fields. **Required scope:** `dashboards:write` or `calls:write`. - [Save a natural-language dashboard plan](https://docs.ouraicalling.com/api-reference/dashboards/save-a-natural-language-dashboard-plan.md): Revalidates a previewed semantic plan and saves it as regular reusable dashboard widgets. Client-provided metric, filter, grouping, and visualization values are checked against the same server catalog again before any write. **Required scope:** `dashboards:write` or `calls:write`. - [List dashboard widgets](https://docs.ouraicalling.com/api-reference/dashboards/list-dashboard-widgets.md): Returns widgets with conditions, visualization settings, display order, and 12-column grid layout. **Required scope:** `dashboards:read` or `calls:read`. - [Create or attach a dashboard widget](https://docs.ouraicalling.com/api-reference/dashboards/create-or-attach-a-dashboard-widget.md): Create and attach a widget, or provide `widget_id` to attach an existing reusable widget. **Required scope:** `dashboards:write` or `calls:write`. - [Update a dashboard widget](https://docs.ouraicalling.com/api-reference/dashboards/update-a-dashboard-widget.md): Partial update of widget data, visualization, conditions, order, or grid layout. **Required scope:** `dashboards:write` or `calls:write`. - [Detach a dashboard widget](https://docs.ouraicalling.com/api-reference/dashboards/detach-a-dashboard-widget.md): Detaches the widget from this dashboard; the reusable widget record is retained. **Required scope:** `dashboards:write` or `calls:write`. - [List email sender choices](https://docs.ouraicalling.com/api-reference/settings/list-email-sender-choices.md): Returns the secrets-free sender choices that can be stored on a reusable `send_email` tool: automatic routing, workspace SMTP, platform mail, and verified SendGrid addresses. Also returns workspace display-name and signature defaults. **Required scope:** `settings:read` or `assistants:read`. Require… - [List email domains](https://docs.ouraicalling.com/api-reference/messaging/list-email-domains.md): List the domains connected to the email channel, including DNS verification status and the exact records to add at your DNS provider. **Required scope:** `assistants:read`. Requires workspace owner/admin. - [Connect an email domain](https://docs.ouraicalling.com/api-reference/messaging/connect-an-email-domain.md): Connects a new domain to the email channel. Returns the domain in `pending` status together with the DNS records (CNAMEs for sending/DKIM, an MX record for receiving) to add before calling `POST /email/domains/{id}/verify`. **Required scope:** `assistants:write`. - [Get an email domain](https://docs.ouraicalling.com/api-reference/messaging/get-an-email-domain.md): **Required scope:** `assistants:read`. Requires workspace owner/admin. - [Disconnect an email domain](https://docs.ouraicalling.com/api-reference/messaging/disconnect-an-email-domain.md): Disconnects a domain; its addresses are removed with it. **Required scope:** `assistants:write`. - [Verify an email domain](https://docs.ouraicalling.com/api-reference/messaging/verify-an-email-domain.md): Re-checks the domain's DNS records and flips it to `verified` once every record resolves correctly (also finishing the inbound-receiving setup). Safe to call repeatedly while DNS propagates. **Required scope:** `assistants:write`. - [List email addresses](https://docs.ouraicalling.com/api-reference/messaging/list-email-addresses.md): List addresses on the email channel, including the resolved domain and assigned assistant. **Required scope:** `assistants:read`. Requires workspace owner/admin. - [Create an email address](https://docs.ouraicalling.com/api-reference/messaging/create-an-email-address.md): Creates an address on an already-**verified** domain, optionally assigned to an assistant so it can send and receive on that address. **Required scope:** `assistants:write`. - [Update an email address](https://docs.ouraicalling.com/api-reference/messaging/update-an-email-address.md): Rename (display name), reassign to a different assistant, or toggle active. There is no single-address GET — read it back via the list. **Required scope:** `assistants:write`. - [Delete an email address](https://docs.ouraicalling.com/api-reference/messaging/delete-an-email-address.md): **Required scope:** `assistants:write`. - [Get email channel defaults](https://docs.ouraicalling.com/api-reference/messaging/get-email-channel-defaults.md): Workspace-wide default sender name and signature, used when an address doesn't have its own. **Required scope:** `assistants:read`. Requires workspace owner/admin. - [Replace email channel defaults](https://docs.ouraicalling.com/api-reference/messaging/replace-email-channel-defaults.md): Replaces the workspace's default sender name and signature wholesale — omitted fields reset to an empty string, so send both together if you're changing only one. `"{agent_name}"` in the signature is replaced with the assistant's name at send time. **Required scope:** `assistants:write`. - [List platform users](https://docs.ouraicalling.com/api-reference/white-label/list-platform-users.md): List the customers you can manage through the White-Label Platform API — your reseller workspace's customers, or (for platform admins) direct platform customers. `q` searches name and email (case-insensitive substring). Sorted by `created_at` descending. **Required scope:** `platform:read`. Requires… - [Register a platform user](https://docs.ouraicalling.com/api-reference/white-label/register-a-platform-user.md): Creates a new customer account and workspace on your behalf — a real user plus a fresh workspace scoped under your reseller (or, for platform admins, a new platform root workspace). Returns `409` if the email is already registered anywhere on the platform; the message never reveals whether that acco… - [Get a platform user](https://docs.ouraicalling.com/api-reference/white-label/get-a-platform-user.md): Detail, in-scope workspaces, and balances for a single customer. **Required scope:** `platform:read`. Requires white-label platform access (a reseller workspace with the white-label entitlement, or a platform admin acting from a root workspace) plus a live owner/admin membership in the calling crede… - [Create a platform user token](https://docs.ouraicalling.com/api-reference/white-label/create-a-platform-user-token.md): Mints a `fam_...` API key for this customer without needing their password — useful for a dashboard, an onboarding email, or an automated workflow acting on their behalf. The key is returned in full exactly once; store it immediately, it cannot be retrieved again. `scopes` defaults to full access fo… - [Log in a platform user](https://docs.ouraicalling.com/api-reference/white-label/log-in-a-platform-user.md): Authenticates a customer with their email and password and, on success, mints them an access token exactly like `POST /platform/users/{user_id}/token` — use this to build your own login form or custom auth flow on your white-label platform, instead of sending customers to the hosted login page. REST… - [Log out a platform user](https://docs.ouraicalling.com/api-reference/white-label/log-out-a-platform-user.md): Revokes every active API key and OAuth token this customer holds across the workspace(s) in your scope — use it to force a sign-out, for example after an account is compromised or your relationship with this customer ends. Idempotent: calling it again on an already-logged-out customer just returns z… - [Transfer credits to or from a platform user](https://docs.ouraicalling.com/api-reference/white-label/transfer-credits-to-or-from-a-platform-user.md): Transfers signed credits between your own workspace wallet and this customer's workspace wallet. A **positive** `credits` value grants credits from your wallet to the customer; a **negative** value reclaims credits back from the customer into yours. Either direction requires the source wallet to cov… - [Get custom domain status](https://docs.ouraicalling.com/api-reference/settings/get-custom-domain-status.md): Reads the workspace custom domain and checks its live ownership plus DNS/TLS configuration. `ready` becomes true only when ownership is verified and the platform reports a valid configuration that can receive a TLS certificate. **Required scope:** `settings:read` or `assistants:read`. Requires works… - [Add custom domain](https://docs.ouraicalling.com/api-reference/settings/add-custom-domain.md): Attaches a hostname to the platform and returns the exact ownership and routing records to configure. When the hostname is the apex or its `www` sibling, the companion host is also attached with a 308 redirect to the canonical domain. A workspace can have one custom domain. **Required scope:** `sett… - [Remove custom domain](https://docs.ouraicalling.com/api-reference/settings/remove-custom-domain.md): Detaches the workspace custom domain (and any www/apex companion redirect) from the platform, removes it where possible, and disables it for host-based login and branding. **Required scope:** `settings:write` or `assistants:write`. Requires workspace owner/admin role. **Requires the white-label enti… - [Check custom domain DNS](https://docs.ouraicalling.com/api-reference/settings/check-custom-domain-dns.md): Rechecks the ownership challenge and reads the current project-specific DNS/TLS configuration. DNS propagation may take time; an incomplete setup returns `200` with `ready: false` and updated `required_records`. **Required scope:** `settings:write` or `assistants:write`. Requires workspace owner/adm… ## OpenAPI Specs - [openapi](https://docs.ouraicalling.com/api-reference/openapi.json)