Skip to content

Non-Agent API catalog

Route: https://{host}/vicidial/non_agent_api.php
Common fields: function, user, pass, and usually source plus function-specific inputs
Output: SUCCESS:, ERROR:, and NOTICE: lines or function-specific delimited/report data.

Permissions are function-specific. Many reporting calls require user_level 7+ and report access; many administrative mutations require level 8+ and matching modify flags. Consult the canonical source for each function.

FunctionPurpose
versionShow API version, build, time, and timezone.
sounds_listList audio-store files.
moh_listList music-on-hold classes.
vm_listList voicemail boxes.
blind_monitorCall a phone and join it to a session for monitoring.
add_leadAdd a lead with field and duplicate-check options.
update_leadUpdate a lead and associated custom-field row.
batch_update_leadApply one limited field set to multiple leads.
agent_ingroup_infoShow in-group and outbound autodial state for a logged-in agent.
recording_lookupFind recordings by agent/date, lead, unique ID, or related filters.
did_log_exportExport inbound calls to a DID for one day.
agent_stats_exportExport agent statistics for a time range.
add_userAdd a VICidial user.
update_userUpdate or delete a VICidial user.
copy_userCreate a user from an existing user’s settings.
add_phoneAdd a phone record.
update_phoneUpdate or delete a phone record.
add_phone_aliasAdd a phone alias.
update_phone_aliasUpdate or delete a phone alias.
add_listAdd a lead list.
update_listUpdate, reset, or delete a lead list.
list_infoReturn summary information for a list.
list_custom_fieldsList custom fields for one or all lists.
add_group_aliasAdd a group alias.
user_group_statusReturn real-time status for user groups.
in_group_statusReturn real-time status for inbound groups.
agent_statusReturn real-time status for one user.
callid_infoFind call information by caller code/call ID.
lead_field_infoReturn one field from a lead.
lead_callback_infoReturn scheduled callback data for a lead.
lead_all_infoReturn all standard and optional custom data for a lead.
lead_status_searchFind leads by status and call date.
lead_searchSearch leads by phone number.
ccc_lead_infoReturn lead data for a cross-cluster communication call.
server_refreshForce telephony servers to refresh configuration files.
check_phone_numberValidate whether a phone number is dialable.
logged_in_agentsList agents logged in to the system.
update_campaignUpdate campaign settings.
add_didAdd an inbound DID.
copy_didAdd an inbound DID copied from an existing DID.
update_didUpdate inbound DID information.
phone_number_logExport calls placed to one or more phone numbers.
call_status_statsReport call counts by campaign/in-group, hour, and status.
call_dispo_reportReport call disposition breakdowns.
agent_campaignsReturn campaigns/in-groups allowed for a user.
update_cid_group_entryUpdate CID-group entries.
add_dnc_phoneAdd a number to a DNC list.
delete_dnc_phoneRemove a number from a DNC list.
add_fpg_phoneAdd a number to a Filter Phone Group.
delete_fpg_phoneRemove a number from a Filter Phone Group.
campaigns_listReturn campaign information.
hopper_listReturn hopper leads for a campaign.
hopper_bulk_insertAdd multiple lead IDs to the hopper.
update_alt_urlAdd, update, list, or display alternate disposition URLs.
update_presetsAdd, update, list, or delete campaign presets.
lead_dearchiveMove an archived lead back to the active table.
update_remote_agentUpdate remote-agent settings.
user_detailsReturn information about one user.
Terminal window
curl --fail-with-body --get "${VICIDIAL_URL}/vicidial/non_agent_api.php" \
--data-urlencode "source=dialdozer-mcp" \
--data-urlencode "user=${VICIDIAL_API_USER}" \
--data-urlencode "pass=${VICIDIAL_API_PASS}" \
--data-urlencode "function=agent_status" \
--data-urlencode "agent_user=1000" \
--data-urlencode "stage=json" \
--data-urlencode "header=YES"

stage support differs by function. Report-like calls commonly document pipe (default), csv, tab, and json; some also support newline. Older list functions use specialized format values. If a function does not document JSON, parse its stated line or delimiter format instead.

Before an add_*, update_*, delete_*, copy, dearchive, refresh, or hopper mutation:

  1. Resolve the target with lead_all_info, user_details, list_info, campaigns_list, or another relevant lookup.
  2. Confirm API permission and scope restrictions.
  3. Send only documented fields; omitted and empty fields may differ.
  4. Require a body beginning with SUCCESS: where the function documents it.
  5. Preserve NOTICE: lines for bulk calls: they contain per-item outcomes even when the final summary succeeds.

Required fields, permission thresholds, supported stage values, output columns, and exact response variants are defined in docs/NON-AGENT_API.txt. Treat it as canonical for production integration.