#AiDial API Reference

3 min read
  • Production API: https://api.aidial.ai
  • Version prefix: /v1

This reference documents public endpoints and approved customer/partner API surfaces. Internal operations, host names, route mappings, storage layout, and deployment details are deliberately excluded.

#Getting Started

#Endpoint Groups

Protected routes use the authentication mode shown on each endpoint page. Partner server-to-server integrations normally use X-API-Key; customer or partner portal flows may use Authorization: Bearer <jwt> only when the page explicitly says so.

#Partner Integrations

Identity, API-key lifecycle, webhook registration, model/voice catalogs, and capacity monitoring for approved partner integrations.

#Calls Analytics

Call summaries, lists, timeline metrics, call detail, transcript download, and CSV export for authenticated tenant scopes.

#Projects

Project lifecycle, assignments, controlled release operations, safe project-secret metadata, and legacy project billing helpers for authorised scopes.

#Outbound Campaigns

Outbound campaign CRUD, contact import, compliance validation, registry-wash records, and safe outbound-evidence summaries.

#Compliance Caller Requests

Masked caller access/deletion workflow rows, open-count badges, and lifecycle status transitions.

#Billing

Customer billing overview, invoice history, invoice recipient masking/unmasking, invoice PDF download, and billing portal sessions.

#Health & Status

Public availability endpoints for GET / and GET /v1/health.

#Data Scoping

Protected API responses are scoped to the authenticated context. Cross-client data is never returned. Out-of-scope resources return 404 Not Found to avoid tenant enumeration. Missing or invalid authentication returns 401 Unauthorized. If a required backend dependency is unavailable, the API returns 503 Service Unavailable.

PII-sensitive responses respect customer privacy settings and fail closed by redacting or omitting protected fields when access cannot be verified. Raw encrypted values, signing secrets, API keys, bearer tokens, and plaintext secret values are not partner response fields.

#Endpoint Coverage

This table is generated from docs/dev/endpoint-visibility.yaml. Mounted routes classified as internal are intentionally excluded from this public table until they have a reviewed reference page.

MethodPathGroupVisibilityReference
GET/healthpublichealth.md
GET/v1/billing/invoice-recipientsbillingpartnerbilling.md
POST/v1/billing/invoice-recipients/unmaskbillingpartnerbilling.md
GET/v1/billing/invoicesbillingpartnerbilling.md
GET/v1/billing/invoices/{invoice_id}/pdfbillingpartnerbilling.md
GET/v1/billing/overviewbillingpartnerbilling.md
POST/v1/billing/portal-sessionbillingpartnerbilling.md
GET/v1/calls/dashboard/privacy-aggregatescallspartnercalls-analytics.md
POST/v1/calls/exportcalls-analyticspartnercalls-analytics.md
GET/v1/calls/listcalls-analyticspartnercalls-analytics.md
GET/v1/calls/outcomescallspartnercalls-analytics.md
GET/v1/calls/provider-performancecallspartnercalls-analytics.md
GET/v1/calls/sentimentcalls-analyticspartnercalls-analytics.md
GET/v1/calls/sentiment/timelinecalls-analyticspartnercalls-analytics.md
GET/v1/calls/summarycalls-analyticspartnercalls-analytics.md
GET/v1/calls/timelinecalls-analyticspartnercalls-analytics.md
GET/v1/calls/{call_id}calls-analyticspartnercalls-analytics.md
GET/v1/calls/{call_id}/inline-previewcallspartnercalls-analytics.md
GET/v1/calls/{call_id}/transcript-downloadcalls-analyticspartnercalls-analytics.md
GET/v1/calls/{call_id}/transcript/pdfcallspartnercalls-analytics.md
GET/v1/capacity/historycapacitypartnerpartner-integrations.md
GET/v1/capacity/overviewcapacitypartnerpartner-integrations.md
GET/v1/catalogs/modelscatalogspartnerpartner-integrations.md
GET/v1/catalogs/voicescatalogspartnerpartner-integrations.md
GET/v1/compliance/caller-requestscompliancepartnercompliance-caller-requests.md
POST/v1/compliance/caller-requestscompliancepartnercompliance-caller-requests.md
GET/v1/compliance/caller-requests/open-countcompliancepartnercompliance-caller-requests.md
POST/v1/compliance/caller-requests/{request_id}/status-transitionscompliancepartnercompliance-caller-requests.md
GET/v1/compliance/calls/{call_id}/outbound-evidencecompliancepartneroutbound-campaigns.md
GET/v1/healthhealthpublichealth.md
GET/v1/outbound-campaignsoutbound-campaignspartneroutbound-campaigns.md
POST/v1/outbound-campaignsoutbound-campaignspartneroutbound-campaigns.md
PATCH/v1/outbound-campaigns/{campaign_id}outbound-campaignspartneroutbound-campaigns.md
POST/v1/outbound-campaigns/{campaign_id}/canceloutbound-campaignspartneroutbound-campaigns.md
GET/v1/outbound-campaigns/{campaign_id}/contactsoutbound-campaignspartneroutbound-campaigns.md
POST/v1/outbound-campaigns/{campaign_id}/contacts/importoutbound-campaignspartneroutbound-campaigns.md
POST/v1/outbound-campaigns/{campaign_id}/registry-wash-recordsoutbound-campaignspartneroutbound-campaigns.md
POST/v1/outbound-campaigns/{campaign_id}/validateoutbound-campaignspartneroutbound-campaigns.md
GET/v1/outbound-campaigns/{campaign_id}/validationoutbound-campaignspartneroutbound-campaigns.md
GET/v1/partner/api-keyspartnerpartnerpartner-integrations.md
POST/v1/partner/api-keyspartnerpartnerpartner-integrations.md
POST/v1/partner/api-keys/{key_id}/revokepartnerpartnerpartner-integrations.md
POST/v1/partner/api-keys/{key_id}/rotatepartnerpartnerpartner-integrations.md
GET/v1/partner/mepartnerpartnerpartner-integrations.md
GET/v1/partner/webhookspartnerpartnerpartner-integrations.md
POST/v1/partner/webhookspartnerpartnerpartner-integrations.md
GET/v1/partner/webhooks/deliveriespartnerpartnerpartner-integrations.md
DELETE/v1/partner/webhooks/{webhook_id}partnerpartnerpartner-integrations.md
PATCH/v1/partner/webhooks/{webhook_id}partnerpartnerpartner-integrations.md
POST/v1/partner/webhooks/{webhook_id}/rotate-secretpartnerpartnerpartner-integrations.md
POST/v1/partner/webhooks/{webhook_id}/testpartnerpartnerpartner-integrations.md
GET/v1/projectsprojectspartnerprojects.md
POST/v1/projectsprojectspartnerprojects.md
GET/v1/projects/{project_id}projectspartnerprojects.md
PATCH/v1/projects/{project_id}projectspartnerprojects.md
PUT/v1/projects/{project_id}projectspartnerbilling.md
POST/v1/projects/{project_id}/archiveprojectspartnerprojects.md
POST/v1/projects/{project_id}/assignmentsprojectspartnerprojects.md
DELETE/v1/projects/{project_id}/assignments/{assignment_id}projectspartnerprojects.md
GET/v1/projects/{project_id}/billing-configprojectspartnerbilling.md
GET/v1/projects/{project_id}/billing-summaryprojectspartnerbilling.md
POST/v1/projects/{project_id}/dashboard-metadata/publishprojectspartnerprojects.md
GET/v1/projects/{project_id}/draftprojectspartnerprojects.md
PUT/v1/projects/{project_id}/draftprojectspartnerprojects.md
GET/v1/projects/{project_id}/lifecycleprojectspartnerprojects.md
PATCH/v1/projects/{project_id}/lifecycleprojectspartnerprojects.md
POST/v1/projects/{project_id}/publishprojectspartnerprojects.md
POST/v1/projects/{project_id}/restoreprojectspartnerprojects.md
POST/v1/projects/{project_id}/rollbackprojectspartnerprojects.md
GET/v1/projects/{project_id}/runtime-driftprojectspartnerprojects.md
POST/v1/projects/{project_id}/runtime-provenanceprojectspartnerprojects.md
POST/v1/projects/{project_id}/test-call/requestprojectspartnerprojects.md
POST/v1/projects/{project_id}/validateprojectspartnerprojects.md
GET/v1/projects/{project_id}/versionsprojectspartnerprojects.md
GET/v1/projects/{project_id}/versions/compareprojectspartnerprojects.md
GET/v1/projects/{project_id}/versions/{version_number}projectspartnerprojects.md