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.
Function selector
Section titled “Function selector”| Function | Purpose |
|---|---|
version | Show API version, build, time, and timezone. |
sounds_list | List audio-store files. |
moh_list | List music-on-hold classes. |
vm_list | List voicemail boxes. |
blind_monitor | Call a phone and join it to a session for monitoring. |
add_lead | Add a lead with field and duplicate-check options. |
update_lead | Update a lead and associated custom-field row. |
batch_update_lead | Apply one limited field set to multiple leads. |
agent_ingroup_info | Show in-group and outbound autodial state for a logged-in agent. |
recording_lookup | Find recordings by agent/date, lead, unique ID, or related filters. |
did_log_export | Export inbound calls to a DID for one day. |
agent_stats_export | Export agent statistics for a time range. |
add_user | Add a VICidial user. |
update_user | Update or delete a VICidial user. |
copy_user | Create a user from an existing user’s settings. |
add_phone | Add a phone record. |
update_phone | Update or delete a phone record. |
add_phone_alias | Add a phone alias. |
update_phone_alias | Update or delete a phone alias. |
add_list | Add a lead list. |
update_list | Update, reset, or delete a lead list. |
list_info | Return summary information for a list. |
list_custom_fields | List custom fields for one or all lists. |
add_group_alias | Add a group alias. |
user_group_status | Return real-time status for user groups. |
in_group_status | Return real-time status for inbound groups. |
agent_status | Return real-time status for one user. |
callid_info | Find call information by caller code/call ID. |
lead_field_info | Return one field from a lead. |
lead_callback_info | Return scheduled callback data for a lead. |
lead_all_info | Return all standard and optional custom data for a lead. |
lead_status_search | Find leads by status and call date. |
lead_search | Search leads by phone number. |
ccc_lead_info | Return lead data for a cross-cluster communication call. |
server_refresh | Force telephony servers to refresh configuration files. |
check_phone_number | Validate whether a phone number is dialable. |
logged_in_agents | List agents logged in to the system. |
update_campaign | Update campaign settings. |
add_did | Add an inbound DID. |
copy_did | Add an inbound DID copied from an existing DID. |
update_did | Update inbound DID information. |
phone_number_log | Export calls placed to one or more phone numbers. |
call_status_stats | Report call counts by campaign/in-group, hour, and status. |
call_dispo_report | Report call disposition breakdowns. |
agent_campaigns | Return campaigns/in-groups allowed for a user. |
update_cid_group_entry | Update CID-group entries. |
add_dnc_phone | Add a number to a DNC list. |
delete_dnc_phone | Remove a number from a DNC list. |
add_fpg_phone | Add a number to a Filter Phone Group. |
delete_fpg_phone | Remove a number from a Filter Phone Group. |
campaigns_list | Return campaign information. |
hopper_list | Return hopper leads for a campaign. |
hopper_bulk_insert | Add multiple lead IDs to the hopper. |
update_alt_url | Add, update, list, or display alternate disposition URLs. |
update_presets | Add, update, list, or delete campaign presets. |
lead_dearchive | Move an archived lead back to the active table. |
update_remote_agent | Update remote-agent settings. |
user_details | Return information about one user. |
Report request pattern
Section titled “Report request pattern”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.
Mutation guardrails
Section titled “Mutation guardrails”Before an add_*, update_*, delete_*, copy, dearchive, refresh, or hopper mutation:
- Resolve the target with
lead_all_info,user_details,list_info,campaigns_list, or another relevant lookup. - Confirm API permission and scope restrictions.
- Send only documented fields; omitted and empty fields may differ.
- Require a body beginning with
SUCCESS:where the function documents it. - Preserve
NOTICE:lines for bulk calls: they contain per-item outcomes even when the final summary succeeds.
Field-level reference
Section titled “Field-level reference”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.