DialMyCalls
MESSAGING · MESSAGING
Contacts, groups, recordings, and broadcasts sent from the account they connected.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
dialmycalls_add_access_accountWRITEAdd a access account. POST /accessaccount. Returns a access account object on success, and returns an error otherwise. THE PASSWORD IS A TOOL ARGUMENT, so whatever is passed here is written into the conversation transcript and any tool-call log along the way. It is the password for a NEW DialMyCalls sub-account, chosen by the caller -- not the connection's API key and not the account holder's own password -- but a sub-account can broadcast, so set a value that will be rotated in DialMyCalls' own console rather than a password reused anywhere else. DialMyCalls requires at least 8 characters with one digit and one upper-case letter.
dialmycalls_add_caller_idWRITEAdd a caller ID. POST /callerid. Returns a caller ID object on success, and returns an error otherwise. Marked destructive over the ledger's verb classification because PRECAUTIONARY, and the reason is that nobody measured it. DialMyCalls' whole description is "Add a caller ID", and it does not say whether registering a number here places the verification call its sibling POST /verify/callerid places explicitly. On a provider whose writes reach telephones, an unmeasured maybe is flagged rather than assumed harmless; it was left unexercised in verification for the same reason. Clearing this is one measurement against a number the operator owns. Registers a caller ID directly, without the PIN round trip that Add Caller ID (Unverified) runs. DialMyCalls does not document whether it also telephones the number to verify it, and Agentic Fabriq has not measured that, so this tool is marked destructive on the precautionary side: treat it as capable of dialling the number given.
dialmycalls_add_caller_id_unverifiedWRITEInitiate adding a new caller ID when you need to go through the verification process. You will receive a phone call at the phone number provided and will need to make a subsequent API call with the PIN code that you are provided. POST /verify/callerid. Returns a caller ID object on success, and returns an error otherwise. Marked destructive over the ledger's verb classification because it telephones the number being registered. DialMyCalls says so in the operation's own description: "You will receive a phone call at the phone number provided and will need to make a subsequent API call with the PIN code that you are provided." PLACES A REAL TELEPHONE CALL to the number being registered, which reads out a PIN; Verify Caller ID (PUT /verify/callerid/{CalleridId}) submits that PIN to finish. Use it only for a number the caller controls.
dialmycalls_add_contactWRITEAdd a contact to your contact list. POST /contact. Returns a contact object on success, and returns an error otherwise.
dialmycalls_add_groupWRITEAdd a contact group. POST /group. Returns a group object on success, and returns an error otherwise.
dialmycalls_cancel_callWRITECancel an outgoing call. DELETE /service/call/{CallId}. Returns the following if a valid identifier was provided, and returns an error otherwise. Cancels a SCHEDULED broadcast. Calls DialMyCalls has already placed are not recalled by this -- only the ones still waiting to go out.
dialmycalls_cancel_textWRITECancel an outgoing text. DELETE /service/text/{TextId}. Returns the following if a valid identifier was provided, and returns an error otherwise. Cancels a SCHEDULED broadcast. Messages DialMyCalls has already sent are not recalled by this -- only the ones still waiting to go out.
dialmycalls_create_callWRITECreate an outgoing call broadcast. POST /service/call. Returns a call service object on success, and returns an error otherwise. Marked destructive over the ledger's verb classification because it places the broadcast's calls. DialMyCalls' own sentence for this operation is "Create an outgoing call broadcast", `contacts` is a required list of phone numbers, and `send_immediately` dials them on the spot. Nothing takes a placed call back. PLACES REAL TELEPHONE CALLS. Every number in `contacts` is dialled -- immediately when `send_immediately` is true, otherwise at `send_at` -- and the call cannot be unplaced. `callerid_id` must be an APPROVED caller ID (GET /callerids shows `approved`) and `recording_id` an existing recording. Each call spends the account's credits. Only broadcast to numbers whose owners have consented: DialMyCalls' terms make that consent the customer's continuing warranty, and US prerecorded voice calls must identify the caller and offer an opt-out.
dialmycalls_create_recording_phoneWRITECreate a new recording by phone. POST /recording/phone. Returns a recording object on success, and returns an error otherwise. Marked destructive over the ledger's verb classification because it telephones the number in `phone` so that whoever answers can record the message. DialMyCalls documents that parameter as "The recipient's phone number who will record the message", so this create is an outbound call to a real handset rather than a row in a table. PLACES A REAL TELEPHONE CALL to `phone` so that whoever answers can record the message. Use it only for a number the caller controls.
dialmycalls_create_recording_ttsWRITECreate a new recording using text-to-speech. POST /recording/tts. Returns a recording object on success, and returns an error otherwise.
dialmycalls_create_recording_urlWRITECreate a new recording from a URL. POST /recording/url. Returns a recording object on success, and returns an error otherwise.
dialmycalls_create_textWRITECreate an outgoing text broadcast. POST /service/text. Returns a service object on success, and returns an error otherwise. Marked destructive over the ledger's verb classification because it sends the broadcast's text messages. DialMyCalls' own sentence is "Create an outgoing text broadcast", `contacts` is a required list of phone numbers, and `send_immediately` sends on the spot. A delivered SMS cannot be recalled. SENDS REAL TEXT MESSAGES. Every number in `contacts` receives every message in `messages` -- immediately when `send_immediately` is true, otherwise at `send_at` -- and a delivered SMS cannot be recalled. `keyword_id` must name a keyword this account owns (GET /keywords). Each message spends credits. Only send to numbers whose owners have opted in; DialMyCalls' terms make that the customer's continuing warranty, and messaging in the US additionally depends on the account's own carrier registration (see `tcr_status` on GET /account).
dialmycalls_delete_access_accountWRITEDelete a access account. DELETE /accessaccount/{AccessAccountId}. Returns the following if a valid identifier was provided, and returns an error otherwise.
dialmycalls_delete_caller_idWRITEDelete a caller ID. DELETE /callerid/{CalleridId}. Returns the following if a valid identifier was provided, and returns an error otherwise. Removing an approved caller ID means broadcasts can no longer be sent from that number, and getting it back requires the PIN verification round trip again.
dialmycalls_delete_contactWRITEDelete a contact from your contact list. DELETE /contact/{ContactId}. Returns the following if a valid identifier was provided, and returns an error otherwise.
dialmycalls_delete_groupWRITEDelete a contact group. DELETE /group/{GroupId}. Returns the following if a valid identifier was provided, and returns an error otherwise.
dialmycalls_delete_incoming_textWRITEDelete a incoming text. DELETE /incoming/text/{TextId}. Returns the following if a valid identifier was provided, and returns an error otherwise.
dialmycalls_delete_keywordWRITEDelete a keyword. DELETE /keyword/{KeywordId}. Returns the following if a valid identifier was provided, and returns an error otherwise.
dialmycalls_delete_recordingWRITEDelete a recording. DELETE /recording/{RecordingId}. Returns the following if a valid identifier was provided, and returns an error otherwise.
dialmycalls_delete_vanity_numberWRITEDelete a vanity number. DELETE /vanitynumber/{VanityNumberId}. Returns the following if a valid identifier was provided, and returns an error otherwise. Releases a provisioned telephone number. The number goes back to the carrier pool and cannot be reclaimed; anything printed or published with it stops reaching this account.
dialmycalls_delete_vanity_voicemailWRITEDelete a vanity voicemail. DELETE /vanitynumber/{VanityNumberId}/voicemail/{VanityVoicemailId}. Returns a list of vanity number voicemail objects .
dialmycalls_get_access_accountREADRetrieve an access account. GET /accessaccount/{AccessAccountId}. Returns a access account object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_accountREADRetrieve account details. GET /account. Returns a account object if a valid identifier was provided, and returns an error otherwise. The credentials in this object are REDACTED before it reaches a caller, and only those. `results.pusher` is dropped whole -- a Pusher app key and the account's private and presence channel names, all of it console plumbing. Inside `results.intercom_settings` only `user_hash` is replaced, the HMAC that authenticates the account holder to Intercom's messenger. The DialMyCalls API key itself is NOT echoed here (measured 2026-09-17, re-checked 2026-09-18). Everything else is passed through, including `credits_available`, the 70-entry `perms` map, and the US carrier-registration flags `tcr_status`, `tcr_vetting_status`, `tfn_status` and `tfn_requires_verification` -- which live INSIDE `intercom_settings` (and again in its `company` copy) and nowhere else in the payload. Check those when a connection whose key is valid still has broadcasts refused: 10DLC and toll-free registration are done in DialMyCalls' own console and are the customer's to clear.
dialmycalls_get_callREADRetrieve a call. GET /service/call/{CallId}. Returns a call service object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_call_recipientsREADRetrieve a list of a call's recipients. GET /service/call/{CallId}/recipients. Returns a list of call recipient objects if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_caller_idREADRetrieve a caller ID. GET /callerid/{CalleridId}. Returns a caller ID object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_contactREADRetrieve a contact to your contact list. GET /contact/{ContactId}. Returns a contact object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_groupREADRetrieve a contact group. GET /group/{GroupId}. Returns a group object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_incoming_textREADRetrieve a text. GET /incoming/text/{TextId}. Returns a Incoming Text object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_keywordREADRetrieve a keyword. GET /keyword/{KeywordId}. Returns a keyword object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_recordingREADRetrieve a recording. GET /recording/{RecordingId}. Returns a recording object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_textREADRetrieve a text. GET /service/text/{TextId}. Returns a service object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_text_recipientsREADRetrieve a list of a text's recipients. GET /service/text/{TextId}/recipients. Returns a list of text recipient objects if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_vanity_numberREADRetrieve a vanity number. GET /vanitynumber/{VanityNumberId}. Returns a vanitynumber object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_get_vanity_voicemailREADRetrieve a vanity voicemail. GET /vanitynumber/{VanityNumberId}/voicemail/{VanityVoicemailId}. Returns a list of vanity number voicemail objects . MEASURED DEFECT, 2026-09-17: asked for a voicemail id that does not exist on a real vanity number, DialMyCalls answers HTTP 200 carrying `{"results":{"error":{"message":"Undefined array key 0"}},"meta":{"result":"failure","status":2}}` -- a PHP notice under a success status. Agentic Fabriq raises on any envelope whose `meta.result` is `failure`, so that arrives as an error rather than as a result, but the underlying response is the provider's.
dialmycalls_get_vanity_voicemailsREADRetrieve a list of vanity voicemails. GET /vanitynumber/{VanityNumberId}/voicemails. Returns a list of vanity number voicemail objects .
dialmycalls_list_access_accountsREADRetrieve a list of access accounts. GET /accessaccounts. Returns a list of access account objects .
dialmycalls_list_caller_idsREADRetrieve a list of caller IDs. GET /callerids. Returns a list of caller ID objects .
dialmycalls_list_callsREADRetrieve a list of calls. GET /service/calls. Returns a list of call service objects .
dialmycalls_list_contactsREADRetrieve a list of contacts. GET /contacts. Returns a list of contact objects .
dialmycalls_list_contacts_in_groupREADRetrieve a list of contacts in a contact group. GET /contacts/{GroupId}. Returns a list of contact objects .
dialmycalls_list_do_not_contactsREADRetrieve a list of donotcontacts. GET /donotcontacts. Returns a list of donotcontact objects . The account's internal Do Not Call list. DialMyCalls' acceptable-use terms require opt-out requests to be honoured immediately through it, and this API exposes no route that adds to or removes from it -- the list is managed in the My Account section of DialMyCalls' console.
dialmycalls_list_groupsREADRetrieve a list of contact groups. GET /groups. Returns a list of group objects .
dialmycalls_list_incoming_textsREADRetrieve a list of texts. GET /incoming/texts. Returns a list of Incoming Text objects .
dialmycalls_list_keywordsREADRetrieve a list of keywords. GET /keywords. Returns a list of keyword objects .
dialmycalls_list_recordingsREADRetrieve a list of recordings. GET /recordings. Returns a list of recording objects .
dialmycalls_list_shortcodesREADRetrieve a list of shortcodes. GET /shortcodes. Returns a list of shortcode objects .
dialmycalls_list_textsREADRetrieve a list of texts. GET /service/texts. Returns a list of service objects .
dialmycalls_list_vanity_numbersREADRetrieve a list of vanity numbers. GET /vanitynumbers. Returns a list of vanitynumber objects .
dialmycalls_update_access_accountWRITEUpdate an existing access account. PUT /accessaccount/{AccessAccountId}. Returns a access account object if a valid identifier was provided and input validation passed, and returns an error otherwise. Sending `password` here CHANGES a sub-account's password, and the new value is a tool argument -- written into the conversation transcript and any tool-call log. Omit it to change only the name or email. See Add Access Account for the same warning at greater length.
dialmycalls_update_caller_idWRITEUpdate an existing caller ID. PUT /callerid/{CalleridId}. Returns a caller ID object if a valid identifier was provided and input validation passed, and returns an error otherwise.
dialmycalls_update_contactWRITEUpdate an existing contact in your contact list. PUT /contact/{ContactId}. Returns a contact object if a valid identifier was provided and input validation passed, and returns an error otherwise.
dialmycalls_update_groupWRITEUpdate an existing contact group. PUT /group/{GroupId}. Returns a group object if a valid identifier was provided and input validation passed, and returns an error otherwise.
dialmycalls_update_recordingWRITEUpdate an existing recording. PUT /recording/{RecordingId}. Returns a recording object if a valid identifier was provided and input validation passed, and returns an error otherwise.
dialmycalls_update_vanity_numberWRITEUpdate a vanity number. PUT /vanitynumber/{VanityNumberId}. Returns a vanitynumber object if a valid identifier was provided, and returns an error otherwise.
dialmycalls_verify_caller_idWRITEVerify a new caller ID. PUT /verify/callerid/{CalleridId}. Returns a caller ID object if a valid identifier was provided, and returns an error otherwise. Completes the pair started by Add Caller ID (Unverified): `pin` is the code read out by the verification call DialMyCalls placed to that number. It sends nothing itself.
Often connected alongside
Put DialMyCalls behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.