All integrations

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_accountWRITE

Add 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.

api
dialmycalls_add_caller_idWRITE

Add 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.

api
dialmycalls_add_caller_id_unverifiedWRITE

Initiate 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.

api
dialmycalls_add_contactWRITE

Add a contact to your contact list. POST /contact. Returns a contact object on success, and returns an error otherwise.

api
dialmycalls_add_groupWRITE

Add a contact group. POST /group. Returns a group object on success, and returns an error otherwise.

api
dialmycalls_cancel_callWRITE

Cancel 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.

api
dialmycalls_cancel_textWRITE

Cancel 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.

api
dialmycalls_create_callWRITE

Create 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.

api
dialmycalls_create_recording_phoneWRITE

Create 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.

api
dialmycalls_create_recording_ttsWRITE

Create a new recording using text-to-speech. POST /recording/tts. Returns a recording object on success, and returns an error otherwise.

api
dialmycalls_create_recording_urlWRITE

Create a new recording from a URL. POST /recording/url. Returns a recording object on success, and returns an error otherwise.

api
dialmycalls_create_textWRITE

Create 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).

api
dialmycalls_delete_access_accountWRITE

Delete a access account. DELETE /accessaccount/{AccessAccountId}. Returns the following if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_delete_caller_idWRITE

Delete 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.

api
dialmycalls_delete_contactWRITE

Delete a contact from your contact list. DELETE /contact/{ContactId}. Returns the following if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_delete_groupWRITE

Delete a contact group. DELETE /group/{GroupId}. Returns the following if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_delete_incoming_textWRITE

Delete a incoming text. DELETE /incoming/text/{TextId}. Returns the following if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_delete_keywordWRITE

Delete a keyword. DELETE /keyword/{KeywordId}. Returns the following if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_delete_recordingWRITE

Delete a recording. DELETE /recording/{RecordingId}. Returns the following if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_delete_vanity_numberWRITE

Delete 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.

api
dialmycalls_delete_vanity_voicemailWRITE

Delete a vanity voicemail. DELETE /vanitynumber/{VanityNumberId}/voicemail/{VanityVoicemailId}. Returns a list of vanity number voicemail objects .

api
dialmycalls_get_access_accountREAD

Retrieve an access account. GET /accessaccount/{AccessAccountId}. Returns a access account object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_accountREAD

Retrieve 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.

api
dialmycalls_get_callREAD

Retrieve a call. GET /service/call/{CallId}. Returns a call service object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_call_recipientsREAD

Retrieve 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.

api
dialmycalls_get_caller_idREAD

Retrieve a caller ID. GET /callerid/{CalleridId}. Returns a caller ID object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_contactREAD

Retrieve a contact to your contact list. GET /contact/{ContactId}. Returns a contact object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_groupREAD

Retrieve a contact group. GET /group/{GroupId}. Returns a group object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_incoming_textREAD

Retrieve a text. GET /incoming/text/{TextId}. Returns a Incoming Text object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_keywordREAD

Retrieve a keyword. GET /keyword/{KeywordId}. Returns a keyword object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_recordingREAD

Retrieve a recording. GET /recording/{RecordingId}. Returns a recording object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_textREAD

Retrieve a text. GET /service/text/{TextId}. Returns a service object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_text_recipientsREAD

Retrieve 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.

api
dialmycalls_get_vanity_numberREAD

Retrieve a vanity number. GET /vanitynumber/{VanityNumberId}. Returns a vanitynumber object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_get_vanity_voicemailREAD

Retrieve 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.

api
dialmycalls_get_vanity_voicemailsREAD

Retrieve a list of vanity voicemails. GET /vanitynumber/{VanityNumberId}/voicemails. Returns a list of vanity number voicemail objects .

api
dialmycalls_list_access_accountsREAD

Retrieve a list of access accounts. GET /accessaccounts. Returns a list of access account objects .

api
dialmycalls_list_caller_idsREAD

Retrieve a list of caller IDs. GET /callerids. Returns a list of caller ID objects .

api
dialmycalls_list_callsREAD

Retrieve a list of calls. GET /service/calls. Returns a list of call service objects .

api
dialmycalls_list_contactsREAD

Retrieve a list of contacts. GET /contacts. Returns a list of contact objects .

api
dialmycalls_list_contacts_in_groupREAD

Retrieve a list of contacts in a contact group. GET /contacts/{GroupId}. Returns a list of contact objects .

api
dialmycalls_list_do_not_contactsREAD

Retrieve 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.

api
dialmycalls_list_groupsREAD

Retrieve a list of contact groups. GET /groups. Returns a list of group objects .

api
dialmycalls_list_incoming_textsREAD

Retrieve a list of texts. GET /incoming/texts. Returns a list of Incoming Text objects .

api
dialmycalls_list_keywordsREAD

Retrieve a list of keywords. GET /keywords. Returns a list of keyword objects .

api
dialmycalls_list_recordingsREAD

Retrieve a list of recordings. GET /recordings. Returns a list of recording objects .

api
dialmycalls_list_shortcodesREAD

Retrieve a list of shortcodes. GET /shortcodes. Returns a list of shortcode objects .

api
dialmycalls_list_textsREAD

Retrieve a list of texts. GET /service/texts. Returns a list of service objects .

api
dialmycalls_list_vanity_numbersREAD

Retrieve a list of vanity numbers. GET /vanitynumbers. Returns a list of vanitynumber objects .

api
dialmycalls_update_access_accountWRITE

Update 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.

api
dialmycalls_update_caller_idWRITE

Update 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.

api
dialmycalls_update_contactWRITE

Update 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.

api
dialmycalls_update_groupWRITE

Update 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.

api
dialmycalls_update_recordingWRITE

Update 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.

api
dialmycalls_update_vanity_numberWRITE

Update a vanity number. PUT /vanitynumber/{VanityNumberId}. Returns a vanitynumber object if a valid identifier was provided, and returns an error otherwise.

api
dialmycalls_verify_caller_idWRITE

Verify 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.

api

Put DialMyCalls behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.