Generated API reference

Customer REST operations generated deterministically from the checked-in canonical OpenAPI snapshot.

This page is the customer-facing operation index generated from the checked-in OpenAPI snapshot. The running API's live OpenAPI document is canonical for exact request and response schemas. Handwritten guides explain the product model: Integrations, customer applications, and post-call results.

Snapshot: Telephony AI API v0.1.0. This generated index includes only customer SDK operations; dashboard, operator, provider, and worker transport hooks are intentionally excluded.

Customer REST operations

MethodPathSummaryRequired scope
POST/mcpHosted MCP endpointSee the live OpenAPI operation
GET/v1/activation-stateGet live customer activation checklist and next actionSee the live OpenAPI operation
GET/v1/agent-catalogList runnable agent stack entriesSee the live OpenAPI operation
GET/v1/agent-endpointsList agent webhook/audio endpointsSee the live OpenAPI operation
POST/v1/agent-endpointsConnect an agentSee the live OpenAPI operation
DELETE/v1/agent-endpoints/{agent_endpoint_id}Delete a webhook endpoint (soft: stops every delivery)See the live OpenAPI operation
PATCH/v1/agent-endpoints/{agent_endpoint_id}Change which events this endpoint receivesSee the live OpenAPI operation
POST/v1/agent-endpoints/{agent_endpoint_id}/pausePause webhook deliveries to this endpointSee the live OpenAPI operation
POST/v1/agent-endpoints/{agent_endpoint_id}/resumeResume a paused or auto-disabled webhook endpointSee the live OpenAPI operation
POST/v1/agent-endpoints/{agent_endpoint_id}/test-eventDispatch a signed test event through the real delivery pipelineSee the live OpenAPI operation
GET/v1/agentsList first-class agentsSee the live OpenAPI operation
POST/v1/agentsCreate an external or hosted agentSee the live OpenAPI operation
GET/v1/agents/{agent_id}Get one agentagents:read
PATCH/v1/agents/{agent_id}Update one agentagents:write
POST/v1/agents/{agent_id}/browser-sessionsCreate an authenticated LiveKit browser-test session for one hosted agentagents:write, calls:write
POST/v1/agents/{agent_id}/browser-sessions/{session_id}/settleSettle one workspace browser-test reservationagents:write, calls:write
GET/v1/agents/{agent_id}/handoffGet generated agent setup handoffSee the live OpenAPI operation
GET/v1/agents/{agent_id}/knowledge-basesList active knowledge bases attached to one hosted agentSee the live OpenAPI operation
PATCH/v1/agents/{agent_id}/knowledge-basesReplace the knowledge bases attached to one hosted agentSee the live OpenAPI operation
GET/v1/agents/{agent_id}/post-call-extractionRead the optional advisory post-call extraction configurationagents:read
PATCH/v1/agents/{agent_id}/post-call-extractionConfigure or disable bounded advisory post-call extractionagents:write
GET/v1/agents/{agent_id}/simulation-suite-runs/{run_id}Fetch one run with a bounded page of attempt resultsagents:read
POST/v1/agents/{agent_id}/simulation-suite-runs/{run_id}/cancelStop the attempts of this run that have not startedagents:write
POST/v1/agents/{agent_id}/simulation-suite-runs/{run_id}/cases/{case_result_id}/evidenceLink an existing Talk or Phone session to this attempt as human evidenceagents:write
POST/v1/agents/{agent_id}/simulation-suite-runs/{run_id}/cases/{case_result_id}/save-as-regressionPromote one attempt into a permanent scenarioagents:write
POST/v1/agents/{agent_id}/simulation-suite-runs/{run_id}/rerun-failedQueue a child run over this run's failed casesagents:write
GET/v1/agents/{agent_id}/simulation-suite-runs/{run_id}/resultsRead one run's verdicts in a stable, versioned shapesimulation_suites:read
GET/v1/agents/{agent_id}/simulation-suitesList this agent's simulation suites with their latest healthagents:read
POST/v1/agents/{agent_id}/simulation-suitesCreate a simulation suite for this agentagents:write
GET/v1/agents/{agent_id}/simulation-suites/{suite_id}Fetch one suite with its authored scenarios and bounded run historyagents:read
PATCH/v1/agents/{agent_id}/simulation-suites/{suite_id}Edit a suite under optimistic revision controlagents:write
POST/v1/agents/{agent_id}/simulation-suites/{suite_id}/duplicateCopy a suite's authored content into a new suiteagents:write
POST/v1/agents/{agent_id}/simulation-suites/{suite_id}/runsQueue a run of this suiteagents:write
GET/v1/agents/{agent_id}/voice-stackRead a hosted agent's safe STT, model, and TTS configurationagents:read
PATCH/v1/agents/{agent_id}/voice-stackValidate and update a hosted agent's STT, model, and TTS selectionsagents:write
GET/v1/agents/{agent_id}/workflowRead an agent's editable workflow draft and bounded published-version summaryagents:read
PATCH/v1/agents/{agent_id}/workflowUpdate the agent's workflow draftagents:write
POST/v1/agents/{agent_id}/workflowCreate the one editable workflow draft for a hosted agentagents:write
POST/v1/agents/{agent_id}/workflow/ai-editPropose a bounded AI edit to the agent's workflow draftagents:write
GET/v1/agents/{agent_id}/workflow/phone-pinRead this agent's current Phone pin statusagents:read
POST/v1/agents/{agent_id}/workflow/phone-pinArm Phone testing: pin one declared caller number to the workflowagents:write
POST/v1/agents/{agent_id}/workflow/phone-pin/disarmCancel this agent's active Phone pin earlyagents:write
POST/v1/agents/{agent_id}/workflow/publishPublish the current draft as a new immutable workflow versionagents:write
POST/v1/agents/{agent_id}/workflow/runsStart a Chat or Simulations test run of the agent's workflowagents:write
GET/v1/agents/{agent_id}/workflow/runs/{run_id}Fetch one test run and its turn evidenceagents:read
POST/v1/agents/{agent_id}/workflow/runs/{run_id}/turnsAdvance one turn of a Chat test runagents:write
POST/v1/agents/{agent_id}/workflow/simulationsRun a batch of scripted-persona Simulations to completionagents:write
POST/v1/agents/{agent_id}/workflow/versions/{version}/restoreRestore a published version's content into the editable draftagents:write
GET/v1/api-keysList scoped API keysSee the live OpenAPI operation
POST/v1/api-keysCreate a scoped API keySee the live OpenAPI operation
GET/v1/api-keys/scopesRead the grantable scope catalogue and bundlesSee the live OpenAPI operation
GET/v1/api-keys/{key_id}Get one API keySee the live OpenAPI operation
POST/v1/api-keys/{key_id}/revokeRevoke an API keySee the live OpenAPI operation
GET/v1/audio-environmentsList immutable audio-environment presetsaccount:read
GET/v1/audit-eventsList audit eventsSee the live OpenAPI operation
GET/v1/billing/settingsRead wallet billing settings and auto-recharge readinessSee the live OpenAPI operation
PATCH/v1/billing/settingsUpdate safe auto-recharge settings without triggering a live chargeSee the live OpenAPI operation
POST/v1/billing/stripe/topup-sessionsCreate a Stripe checkout topup session when enabledSee the live OpenAPI operation
POST/v1/byo/sip-trunk/didsList the connected BYO SIP trunk carrier account's DIDs for the import picker (live read with a transient, never-stored API token)See the live OpenAPI operation
POST/v1/byo/sip-trunk/importImport a carrier-owned DID as a voice-only number; activates only on passing live activation evidence, monthly fee stays with the carrierSee the live OpenAPI operation
POST/v1/byo/sip-trunk/setup-checksRun secret-redacted BYO SIP trunk readiness checks for one DID (trunk auth, caller ID, inbound destination, channel capacity)See the live OpenAPI operation
GET/v1/call-resultsRead one bounded factual post-call result groupcalls:read, recordings:read
GET/v1/callsList callsSee the live OpenAPI operation
POST/v1/callsPlace one policy-gated, idempotent outbound callSee the live OpenAPI operation
GET/v1/calls/statsAggregate call volume, talk time, and spend over one or more date windowscalls:read
GET/v1/calls/{call_id}Get one callcalls:read
GET/v1/calls/{call_id}/artifactsList call artifactsSee the live OpenAPI operation
POST/v1/calls/{call_id}/cancelCancel a queued outbound call before originationSee the live OpenAPI operation
GET/v1/calls/{call_id}/eventsGet one call's full internal lifecycle event logcalls:read
POST/v1/calls/{call_id}/hangupAsk a live call to hang upSee the live OpenAPI operation
GET/v1/calls/{call_id}/observabilityGet dashboard call observability bundleSee the live OpenAPI operation
GET/v1/calls/{call_id}/post-call-extractionRead an optional advisory extraction result for one callrecordings:read
DELETE/v1/calls/{call_id}/recordingDelete the active call recording metadata and audit the actionSee the live OpenAPI operation
GET/v1/calls/{call_id}/recordingGet call recording metadata and disclosure staterecordings:read
GET/v1/calls/{call_id}/recording/contentStream call recording audiorecordings:read
GET/v1/calls/{call_id}/transcriptGet call transcript turnsSee the live OpenAPI operation
GET/v1/calls/{call_id}/transcript/streamGet transcript stream eventsSee the live OpenAPI operation
GET/v1/calls/{call_id}/waveformGet waveform peaks for playbackSee the live OpenAPI operation
GET/v1/campaignsList campaigns (bounded page)calls:read
POST/v1/campaignsCreate a draft outbound campaigncalls:write
GET/v1/campaigns/{campaign_id}Read one campaign with its latest run and contact counterscalls:read
PATCH/v1/campaigns/{campaign_id}Edit a campaign's settingscalls:write
POST/v1/campaigns/{campaign_id}/cancelCancel a campaign: queued calls are cancelled, remaining contacts skippedcalls:write
GET/v1/campaigns/{campaign_id}/contactsList the latest run's contacts with status, disposition, attempts and next attempt (bounded page)calls:read
POST/v1/campaigns/{campaign_id}/duplicateCopy a campaign's configuration into a new draftcalls:write
GET/v1/campaigns/{campaign_id}/exportExport the latest run's results as CSVcalls:read
POST/v1/campaigns/{campaign_id}/launchAuthorize and start a draft campaigncalls:write
POST/v1/campaigns/{campaign_id}/pausePause a running campaigncalls:write
POST/v1/campaigns/{campaign_id}/resumeResume a paused campaigncalls:write
GET/v1/contact-listsList contact lists in the workspace (bounded page)calls:read
POST/v1/contact-listsCreate a contact list, optionally importing rows in the same requestcalls:write
GET/v1/contact-lists/{contact_list_id}Read one contact listcalls:read
GET/v1/contact-lists/{contact_list_id}/contactsList contacts in a list (bounded page in import order)calls:read
POST/v1/contact-lists/{contact_list_id}/contactsAppend rows to a contact listcalls:write
GET/v1/conversationsList SMS conversationsSee the live OpenAPI operation
GET/v1/conversations/{conversation_id}Get one SMS conversationSee the live OpenAPI operation
GET/v1/coverage-matrixList country coverage, messaging, simple onboarding terms, and safe activation speedSee the live OpenAPI operation
GET/v1/customer-onboardingList business onboarding recordsSee the live OpenAPI operation
POST/v1/customer-onboardingSubmit business onboarding detailsSee the live OpenAPI operation
GET/v1/do-not-callList the workspace do-not-call register (bounded page)calls:read
POST/v1/do-not-callAdd numbers to the do-not-call registercalls:write
DELETE/v1/do-not-call/{phone_number}Remove one number from the do-not-call registercalls:write
GET/v1/end-users/{end_user_profile_id}/registration-statusKYC + carrier identity + per-number registration status with derived customer status, and a headline naming how many number registrations OpenPhonex has submitted to the carrier (empty when none is currently submitted, and also when the profile is rejected or needs more information)See the live OpenAPI operation
POST/v1/end-users/{end_user_profile_id}/submit-registrationEnqueue the carrier end-user registration chain (identity/address/proofs/verification) through the operator queue; identity is org-level and reusedSee the live OpenAPI operation
GET/v1/gateway-deploymentsList media gatewaysSee the live OpenAPI operation
POST/v1/gateway-deploymentsCreate a deploymentSee the live OpenAPI operation
PATCH/v1/gateway-deployments/{gateway_id}/outbound-execution-modeChoose whether this deployment dials its own outbound callsgateways:write
GET/v1/gateway-deployments/{gateway_id}/tokensList a gateway's machine tokens, masked to their prefixesSee the live OpenAPI operation
POST/v1/gateway-deployments/{gateway_id}/tokens/{gateway_token_id}/revokeRevoke one gateway machine token immediatelySee the live OpenAPI operation
GET/v1/hosted-ai-credentialsList bounded metadata for hosted AI BYOK credentialsagents:read
POST/v1/hosted-ai-credentialsStore a write-only hosted AI provider credentialagents:write
POST/v1/hosted-ai-credentials/{credential_id}/revokeRevoke a hosted AI credentialagents:write
POST/v1/hosted-ai-credentials/{credential_id}/validateRun a non-billable validation probe for a hosted AI credentialagents:write
GET/v1/integrationsList bounded metadata for reusable customer Integrationsagents:read
POST/v1/integrationsCreate one reusable encrypted Integration and its first read actionagents:write
GET/v1/integrations/{integration_id}/actionsList typed actions on one reusable Integrationagents:read
POST/v1/integrations/{integration_id}/actionsAdd an allowlisted typed read action to an Integrationagents:write
POST/v1/integrations/{integration_id}/disableDisable an Integration and remove its actions from the active worker allowlistagents:write
GET/v1/knowledge-basesList bounded active knowledge bases for the authenticated projectSee the live OpenAPI operation
POST/v1/knowledge-basesCreate a private knowledge base in the authenticated workspaceSee the live OpenAPI operation
DELETE/v1/knowledge-bases/{knowledge_base_id}Hide and asynchronously delete one knowledge base and its private sourcesSee the live OpenAPI operation
GET/v1/knowledge-bases/{knowledge_base_id}Read one knowledge baseSee the live OpenAPI operation
PATCH/v1/knowledge-bases/{knowledge_base_id}Rename one knowledge baseSee the live OpenAPI operation
GET/v1/knowledge-bases/{knowledge_base_id}/documentsList bounded document lifecycle state for one knowledge baseSee the live OpenAPI operation
POST/v1/knowledge-bases/{knowledge_base_id}/documentsDirect-upload one private TXT, Markdown, PDF, or DOCX sourceSee the live OpenAPI operation
POST/v1/knowledge-bases/{knowledge_base_id}/testTest one grounded answer against a private knowledge baseknowledge:read
DELETE/v1/knowledge-documents/{document_id}Hide and asynchronously delete one private source documentSee the live OpenAPI operation
POST/v1/knowledge-documents/{document_id}/replaceReplace one permanently unreadable private source documentknowledge:write
POST/v1/knowledge-documents/{document_id}/retryRetry a recoverable knowledge document ingestionSee the live OpenAPI operation
GET/v1/knowledge-documents/{document_id}/textRead a bounded page of normalized extracted text for one ready documentknowledge:read
POST/v1/kyc/sessionsStart a didit.me KYC (individual) or KYB (business) verification session for an end-user profileSee the live OpenAPI operation
GET/v1/kyc/sessions/{end_user_profile_id}Read KYC/KYB status and the extracted decision summary (no raw document URLs)See the live OpenAPI operation
GET/v1/messagesList SMS messagesSee the live OpenAPI operation
POST/v1/messagesSend a policy-gated outbound SMSSee the live OpenAPI operation
GET/v1/messages/{message_id}/delivery-eventsList SMS provider delivery events for one messageSee the live OpenAPI operation
GET/v1/number-catalogSearch the stored number catalog with customer setup/monthly prices, capabilities, and onboarding termsSee the live OpenAPI operation
GET/v1/number-requestsList managed phone-number requestsSee the live OpenAPI operation
POST/v1/number-requestsRequest a managed OpenPhonex phone numberSee the live OpenAPI operation
GET/v1/number-requests/{request_id}Get one managed phone-number requestSee the live OpenAPI operation
PATCH/v1/number-requests/{request_id}Update managed phone-number request status or notesSee the live OpenAPI operation
GET/v1/numbersList phone numbersSee the live OpenAPI operation
GET/v1/numbers/requirementsResolve honest activation requirements for a country/number-type/profile-type (override > live did_groups flag > dataset prefix flag; requirement text only documents fields)See the live OpenAPI operation
GET/v1/numbers/{number_id}/activationCustomer-facing number activation state: instant | pending_verification | approved | needs_info | rejected with blocking itemsSee the live OpenAPI operation
POST/v1/numbers/{number_id}/detach-agentCompatibility alias for detaching a phone number from its agentnumbers:write
GET/v1/numbers/{number_id}/number-rulesCompatibility alias for phone-number Number rulesSee the live OpenAPI operation
PATCH/v1/numbers/{number_id}/number-rulesCompatibility alias for updating phone-number Number rulesSee the live OpenAPI operation
POST/v1/organizationsCreate a sandbox customer workspace when signup mode allows itSee the live OpenAPI operation
GET/v1/organizations/{organization_id}/capabilitiesRead the workspace's capabilities record, the selectable use-case profiles, and live usage against its capsonboarding:read
POST/v1/organizations/{organization_id}/capabilitiesRequest or change the workspace's capabilitiesonboarding:write
POST/v1/organizations/{organization_id}/capabilities/accept-policyRecord acceptance of the outbound policy without changing the capabilities selectiononboarding:write
POST/v1/organizations/{organization_id}/capabilities/destination-restrictionsSet optional workspace destination restrictionsonboarding:write
POST/v1/organizations/{organization_id}/capabilities/limit-requestsRequest higher limits without changing current permissions or buying a planonboarding:write
POST/v1/phone-numbers/{number_id}/detach-agentDetach a phone number from the agent that answers itnumbers:write
GET/v1/phone-numbers/{number_id}/number-rulesGet customer-facing Number rules for a phone numberSee the live OpenAPI operation
PATCH/v1/phone-numbers/{number_id}/number-rulesUpdate customer-facing Number rules for a phone numberSee the live OpenAPI operation
GET/v1/phone-serversList customer phone serversSee the live OpenAPI operation
POST/v1/phone-serversCreate a customer phone server for self-hosted call mediaSee the live OpenAPI operation
GET/v1/phone-servers/{phone_server_id}Get one customer phone serverSee the live OpenAPI operation
PATCH/v1/phone-servers/{phone_server_id}Update one customer phone serverSee the live OpenAPI operation
POST/v1/phone-servers/{phone_server_id}/testDry-run verify a customer phone server before assigning Number rulesSee the live OpenAPI operation
POST/v1/policies/evaluateEvaluate outbound policySee the live OpenAPI operation
GET/v1/pricing/catalogList pricing plansSee the live OpenAPI operation
POST/v1/pricing/estimateEstimate monthly platform cost on the public price book (public_launch_pricing_v1)See the live OpenAPI operation
GET/v1/regulatory-requirementsList supported country and number-type requirements with simple onboarding terms and cache metadataSee the live OpenAPI operation
GET/v1/self-hosted/install-planFetch a mode-specific self-hosted or customer-hosted gateway install planSee the live OpenAPI operation
GET/v1/trial-callsList historical and offline trial fixturesSee the live OpenAPI operation
POST/v1/trial-callsCreate an offline synthetic trial fixtureSee the live OpenAPI operation
GET/v1/usageGet usage summarySee the live OpenAPI operation
GET/v1/usage/dailyGet daily usage summarySee the live OpenAPI operation
GET/v1/usage/monthlyGet monthly usage summarySee the live OpenAPI operation
GET/v1/verification/requirement-summariesResolve batched per-number-type verification deltas for one country and optional reusable profileSee the live OpenAPI operation
POST/v1/voice-previewsRender one bounded managed voice-selector previewagents:write
GET/v1/walletRead wallet balance and low-balance readiness against recurring and reserved costsSee the live OpenAPI operation
GET/v1/wallet/ledgerList org-level wallet ledger entries and linked usage/call refsSee the live OpenAPI operation
POST/v1/web-callsCreate a non-PSTN browser web-call test sessionSee the live OpenAPI operation
GET/v1/webhook-deliveriesList real webhook delivery attempts (status, attempts, last error, next retry)See the live OpenAPI operation
GET/v1/workspace-contextDiscover the bearer API key's own organization and bounded projectsaccount:read

Regeneration contract

The API repository generates /openapi.json from its canonical schema. This docs repository checks in a snapshot so builds and reviews do not depend on the network. Refresh that snapshot from the reviewed API source, then run:

python3 scripts/generate_openapi_reference.py --check
python3 -m unittest discover -s tests

If the snapshot contains a new customer route, update the conceptual guide that explains its product model as well. Do not hand-copy request schemas into prose.

On this page