DialNexa API
Voice AI agent platform API — agents, calls, workflows, integrations and analytics. 41 paths, 54 operations, bearer authentication, served from api.dialnexa.com.
Voice AI agent platform API — agents, calls, workflows, integrations and analytics. 41 paths, 54 operations, bearer authentication, served from api.dialnexa.com.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/dialnexa-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.0.0
info:
title: DialNexa API
description: Public `/v1` REST API for the DialNexa voice AI platform.
version: 1.0.0
servers:
- url: https://api.dialnexa.com
description: DialNexa production API
security:
- bearer: []
tags:
- name: Agents
- name: Batch Calls
- name: Calls
- name: Knowledge Base
- name: Languages
- name: LLMs
- name: Phone Numbers
- name: Transcribers
- name: Webhooks
- name: Voices
- name: Workflows
- name: Workflow Leads
paths:
/v1/agents:
post:
description: 'Creates an agent with its first draft version. Optionally include `agent_functions`
and `post_call_analysis` in the body to set them at creation time.
**Phone number fields:** `inbound_phone_number_id` and `outbound_phone_number_id` must belong
to the authenticated workspace. On create, these IDs are stored on the draft version. Live dispatch
routing is claimed when the version is published through `PATCH /v1/agents/{id}` with `is_published:
true`.'
operationId: createAgent
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAgentRequest'
examples:
request:
summary: Create an agent
value:
title: Customer Support Agent
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
system_prompt_text: You are a helpful support agent. Confirm the customer issue and
summarize next steps.
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis:
- field_name: issue_type
field_type: STRING
field_description: Main customer issue discussed on the call
predictive_preprocessing_enabled: false
outbound_phone_number_id: phn_def456
agent_type: Single_Prompt_Agent
prompt_text: You are a helpful support agent. Confirm the customer's issue and summarize
next steps.
responses:
'201':
description: Agent created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Agents'
examples:
success:
summary: Successful response
value:
id: agent_2g7Xy3tY53gRlp
folder_id: null
current_version_number: 1
timezone: Asia/Kolkata
agent_type: Single_Prompt_Agent
pipeline_type: Cascaded
webhook_id: null
current_version:
agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
versions:
- agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
'400':
description: Invalid request body.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 400 Bad Request
value:
statusCode: 400
message: Request validation failed
error: Bad Request
'401':
description: Unauthorized - missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 401 Unauthorized
value:
statusCode: 401
message: API key is missing or invalid
error: Unauthorized
'403':
description: Forbidden - API key does not have access to this organization.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 403 Forbidden
value:
statusCode: 403
message: You do not have permission to access this resource
error: Forbidden
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 500 Internal Server Error
value:
statusCode: 500
message: Internal server error
error: Internal Server Error
security:
- bearer: []
summary: Create Agent
tags:
- Agents
get:
description: Returns all agents for your organization. Agent functions are NOT included in list
responses - fetch a specific agent by ID to get its functions.
operationId: listAgents
parameters: []
responses:
'200':
description: Agents returned successfully.
content:
application/json:
schema:
type: object
properties:
agents:
type: array
items:
$ref: '#/components/schemas/Agents'
examples:
success:
summary: Successful response
value:
agents:
- id: agent_2g7Xy3tY53gRlp
folder_id: null
current_version_number: 1
timezone: Asia/Kolkata
agent_type: Single_Prompt_Agent
pipeline_type: Cascaded
webhook_id: null
current_version:
agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
versions:
- agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
'400':
description: Invalid query parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 400 Bad Request
value:
statusCode: 400
message: Invalid query parameters
error: Bad Request
'401':
description: Unauthorized - missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 401 Unauthorized
value:
statusCode: 401
message: API key is missing or invalid
error: Unauthorized
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 403 Forbidden
value:
statusCode: 403
message: You do not have permission to access this resource
error: Forbidden
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 500 Internal Server Error
value:
statusCode: 500
message: Internal server error
error: Internal Server Error
security:
- bearer: []
summary: List Agents
tags:
- Agents
/v1/agents/{id}:
patch:
description: 'Updates the specified draft version of an agent. `version_number` is required.
**Managing functions via this endpoint:**
- Pass `agent_functions: [...]` to fully replace all functions for that version.
- Pass `agent_functions: []` to remove all functions.
- Omit `agent_functions` entirely to leave existing functions untouched.
**Post-call analysis LLM:**
- Pass `post_call_analysis_llm_id`, for example `llm_A1B2C3D4E5F6G7`, to set the LLM used for
post-call field extraction.
- Pass `null` to clear the override and revert to the organization default.
- Omit the field to leave it unchanged.
**Phone number assignment:**
- `inbound_phone_number_id` and `outbound_phone_number_id` are applied to live routing only when
`is_published: true` is included in the same request.
- Sending a phone number ID without `is_published: true` leaves live routing unchanged.
- Pass an empty string to detach a phone number while publishing.
- Outbound changes can return `409 Conflict` when active workflows still use the number. Pause
those workflows before retrying.
Published versions cannot be updated, except to set `is_published: true` to publish a draft.'
operationId: updateAgent
parameters:
- name: id
required: true
in: path
description: Agent ID
schema:
example: agent_2g7Xy3tY53gRlp
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAgentRequest'
examples:
request:
summary: Update a draft agent version
value:
version_number: 1
title: Customer Support Agent
llm_id: llm_A1B2C3D4E5F6G7
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
clearPostCallAnalysisLlm:
summary: Clear post-call analysis LLM override
value:
version_number: 1
post_call_analysis_llm_id: null
publishWithOutboundNumber:
summary: Publish a draft with an outbound number
value:
version_number: 1
is_published: true
outbound_phone_number_id: phn_def456
detachOutboundNumber:
summary: Publish while detaching an outbound number
value:
version_number: 2
is_published: true
outbound_phone_number_id: ''
responses:
'200':
description: Agent updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Agents'
examples:
success:
summary: Successful response
value:
id: agent_2g7Xy3tY53gRlp
folder_id: null
current_version_number: 1
timezone: Asia/Kolkata
agent_type: Single_Prompt_Agent
pipeline_type: Cascaded
webhook_id: null
current_version:
agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
versions:
- agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
'400':
description: Invalid body or attempting to update a published version.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 400 Bad Request
value:
statusCode: 400
message: Request validation failed
error: Bad Request
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 401 Unauthorized
value:
statusCode: 401
message: API key is missing or invalid
error: Unauthorized
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 403 Forbidden
value:
statusCode: 403
message: You do not have permission to access this resource
error: Forbidden
'404':
description: Agent or version not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 404 Not Found
value:
statusCode: 404
message: Agent not found
error: Not Found
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 500 Internal Server Error
value:
statusCode: 500
message: Internal server error
error: Internal Server Error
'409':
description: Phone number assignment conflicts with active workflows.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
phoneNumberUsedInActiveWorkflows:
summary: 409 Conflict
value:
statusCode: 409
message: Cannot bind outbound_phone_number_id "phn_def456" to this agent because it
is currently used by active workflows. Pause those workflows first, then retry.
error: Conflict
security:
- bearer: []
summary: Update Agent
tags:
- Agents
delete:
description: Deletes an agent and all its versions. Historical call records remain available.
operationId: deleteAgent
parameters:
- name: id
required: true
in: path
description: Agent ID
schema:
example: agent_2g7Xy3tY53gRlp
type: string
responses:
'200':
description: Agent deleted successfully.
content:
application/json:
examples:
success:
summary: Successful response
value:
success: true
message: Agent deleted successfully
schema:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: Agent deleted successfully
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 401 Unauthorized
value:
statusCode: 401
message: API key is missing or invalid
error: Unauthorized
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 403 Forbidden
value:
statusCode: 403
message: You do not have permission to access this resource
error: Forbidden
'404':
description: Agent not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 404 Not Found
value:
statusCode: 404
message: Agent not found
error: Not Found
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 500 Internal Server Error
value:
statusCode: 500
message: Internal server error
error: Internal Server Error
security:
- bearer: []
summary: Delete Agent
tags:
- Agents
get:
description: Returns the agent with all versions. Each version includes `agent_functions`, `pronunciations`,
and `postcall_analysis` embedded.
operationId: getAgent
parameters:
- name: id
required: true
in: path
description: Agent ID
schema:
example: agent_2g7Xy3tY53gRlp
type: string
responses:
'200':
description: Agent returned with all versions and embedded agent_functions.
content:
application/json:
schema:
$ref: '#/components/schemas/Agents'
examples:
success:
summary: Successful response
value:
id: agent_2g7Xy3tY53gRlp
folder_id: null
current_version_number: 1
timezone: Asia/Kolkata
agent_type: Single_Prompt_Agent
pipeline_type: Cascaded
webhook_id: null
current_version:
agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
versions:
- agent_id: agent_2g7Xy3tY53gRlp
version_number: 1
version_title: Version 1
title: Customer Support Agent
is_published: false
language_id: lang_en_in
voice_id: voice_abc123
llm_id: llm_A1B2C3D4E5F6G7
transcriber_id: trs_deepgram_nova_2
fallback_stt_enabled: true
stt_fallback_transcriber_id: trs_soniox
post_call_analysis_llm_id: llm_A1B2C3D4E5F6G7
'400':
description: Invalid agent ID format.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 400 Bad Request
value:
statusCode: 400
message: Invalid query parameters
error: Bad Request
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 401 Unauthorized
value:
statusCode: 401
message: API key is missing or invalid
error: Unauthorized
'403':
description: Forbidden - agent does not belong to your organization.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 403 Forbidden
value:
statusCode: 403
message: You do not have permission to access this resource
error: Forbidden
'404':
description: Agent not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 404 Not Found
value:
statusCode: 404
message: Agent not found
error: Not Found
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 500 Internal Server Error
value:
statusCode: 500
message: Internal server error
error: Internal Server Error
security:
- bearer: []
summary: Get Agent Details
tags:
- Agents
/v1/batch-calls:
post:
description: Uploads a CSV or Excel leads file, creates a batch call, and enqueues outbound calls
for all leads.
operationId: createBatchCall
parameters: []
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
- title
- agent_id
properties:
file:
type: string
format: binary
description: CSV or Excel file containing leads (max 10 MB)
title:
type: string
example: Q3 Follow-up Batch
maxLength: 35
description: Batch title shown in the dashboard. Must be 35 characters or fewer.
agent_id:
type: string
example: agent_abc123
agent_version_number:
type: number
example: 1
description: Published agent version to use. Omit to use the agent's latest published
version.
starts_at:
type: string
example: '2024-01-15T09:00:00Z'
description: ISO 8601 datetime - leave empty to start immediately
ends_at:
type: string
example: '2024-01-15T18:00:00Z'
calling_hours_start:
type: string
example: 09:00
calling_hours_end:
type: string
example: '18:00'
examples:
request:
summary: Request example
value:
file: leads.csv
title: Q3 Follow-up Batch
agent_id: agent_abc123
agent_version_number: 1
responses:
'201':
description: Batch call created and calls enqueued.
content:
application/json:
schema:
type: object
properties:
id:
type: string
example: batch_abc123
title:
type: string
total_records:
type: number
example: 250
status:
type: string
example: initiated
from_number:
type: string
nullable: true
warning:
type: object
description: Non-blocking scheduling warning returned when another running, waiting,
or nearby scheduled batch may delay this batch.
properties:
message:
type: string
conflicts:
type: array
items:
type: object
properties:
kind:
type: string
enum:
- running
- waiting
- scheduled
batch_name:
type: string
processed_leads:
type: number
total_leads:
type: number
starts_at:
type: string
format: date-time
examples:
success:
summary: Successful response
value:
id: batch_abc123
title: Q3 Follow-up Batch
total_records: 250
status: initiated
from_number: '+14155552671'
warning:
message: This batch was created, but your organization already has 1 running batch
ahead of it. Batches run one at a time per organization, so this batch may be
delayed.
conflicts:
- kind: running
batch_name: July renewals
processed_leads: 42
total_leads: 250
'400':
description: Invalid file or missing required fields, the resolved agent version is unpublished,
or no outbound phone number is attached to that version.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 400 Bad Request
value:
statusCode: 400
message: The uploaded file must include a phone_number column
error: Bad Request
titleTooLong:
summary: Title too long
value:
statusCode: 400
message: title must be 35 characters or fewer (received 42).
error: Bad Request
unpublishedVersion:
summary: Agent version is still a draft
value:
statusCode: 400
message: Version 2 of agent agent_abc123 is a draft. Publish it before starting a
batch call.
error: Bad Request
'401':
description: Unauthorized - missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 401 Unauthorized
value:
statusCode: 401
message: API key is missing or invalid
error: Unauthorized
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
error:
summary: 403 Forbidden
value:
statusCode: 403
message: Destination country or network prefix is not enabled for this workspace
error: Forbidden
'404':
description: Agent not found in the workspace, or the requested agent version does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
versionNotFound:
summary: Agent version not found
value:
statusCode: 404
# --- truncated at 32 KB (244 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dialnexa/refs/heads/main/openapi/dialnexa-api-openapi.yml