# DCDial API > Every operation is an HTTPS POST to https://api.dcdial.com/api/ with form fields. The `type` field selects the operation; `token` (from type=login_user) authenticates. Responses are JSON: {"response":{"success":1|0,"error":"..."}}, usually HTTP 200 even on errors. ## Getting started - [Quickstart](https://apidocs.dcdial.com/getting-started/quickstart/) - [Authentication](https://apidocs.dcdial.com/getting-started/authentication/) - [Requests and responses](https://apidocs.dcdial.com/getting-started/conventions/) - [Errors](https://apidocs.dcdial.com/getting-started/errors/) - [OpenAPI](https://apidocs.dcdial.com/openapi.json) ## Authentication - [Log in](https://apidocs.dcdial.com/reference/authentication/login/): type=login_user. Exchanges a DCDial username and password for an API token. Send the token as the token field on every other request. ## Campaigns - [Play campaign](https://apidocs.dcdial.com/reference/campaigns/play-campaign/): type=play_campaign. Starts outbound dialing for a campaign. It keeps dialing until you pause or stop it, or until it runs out of accounts to call. - [Pause campaign](https://apidocs.dcdial.com/reference/campaigns/pause-campaign/): type=pause_campaign. Suspends outbound dialing for a running campaign. Calls already in progress finish normally. - [Stop campaign](https://apidocs.dcdial.com/reference/campaigns/stop-campaign/): type=stop_campaign. Stops a running or paused campaign, deactivates it and clears its dialing queue. - [List campaigns](https://apidocs.dcdial.com/reference/campaigns/list-campaigns/): type=get_campaigns. Lists the campaigns you can access, newest first, with their status. - [Get campaign settings](https://apidocs.dcdial.com/reference/campaigns/get-campaign-settings/): type=get_campaign_settings. Returns a campaign’s settings (dial method, caller ID, calling hours, answering-machine detection, recording and more), each with its current value and the allowed options. - [Update campaign](https://apidocs.dcdial.com/reference/campaigns/update-campaign/): type=update_campaign. Changes one or more settings of a campaign. Send only the fields you want to change; get the allowed values from Get campaign settings. - [Place a test call](https://apidocs.dcdial.com/reference/campaigns/test-call/): type=dial_number. Places a single test call with a campaign’s settings, so you can hear the message and check delivery before any account holders are called. ## Accounts - [Create or update an account](https://apidocs.dcdial.com/reference/accounts/add-account/): type=add_account. Creates an account with its phone numbers and email addresses, or updates it if an account with the same accountid already exists. - [Fetch accounts](https://apidocs.dcdial.com/reference/accounts/fetch-accounts/): type=fetch_accounts. Lists the accounts in your company, with either every phone number and email per account or just the primary ones. ## Lists - [Get list](https://apidocs.dcdial.com/reference/lists/get-list/): type=get_list. Returns one list with its campaign, status, account counts and dialing progress. - [List all lists](https://apidocs.dcdial.com/reference/lists/list-lists/): type=get_lists. Lists your calling lists, newest first. Filter by campaign or status. - [Change list status](https://apidocs.dcdial.com/reference/lists/change-list-status/): type=change_status. Turns a list on or off for dialing. - [Search accounts and call log](https://apidocs.dcdial.com/reference/lists/search-accounts/): type=search_lead. Searches accounts and the call log by phone number, account, name, date and other details. - [Add an account to a campaign](https://apidocs.dcdial.com/reference/lists/add-account-to-campaign/): type=add_leads. Adds one account, with its phone numbers and email addresses, to a campaign list so the campaign can call it. If you leave out list_id, a new list is created for the campaign. - [List a campaign’s lists](https://apidocs.dcdial.com/reference/lists/list-campaign-lists/): type=get_campaign_lists. Returns the lists attached to a campaign, newest first. - [Upload an account file](https://apidocs.dcdial.com/reference/lists/upload-file/): type=upload_file. Imports accounts from a CSV file into a campaign, using one of your saved import formats to map the columns. - [Get call results](https://apidocs.dcdial.com/reference/lists/get-results/): type=get_results. Returns the dialer’s call results for a phone number. ## Do-Not-Call - [Add a number to Do-Not-Call](https://apidocs.dcdial.com/reference/dnc/add-number/): type=add_dnc. Adds a phone number to your Do-Not-Call list, so campaigns stop dialing it. Pass campaign_id to block it for one campaign only. - [Remove a number from Do-Not-Call](https://apidocs.dcdial.com/reference/dnc/remove-number/): type=delete_dnc. Removes a phone number from your Do-Not-Call list. Pass the same campaign_id you used when adding it. - [List Do-Not-Call numbers](https://apidocs.dcdial.com/reference/dnc/list-numbers/): type=get_dncs. Lists the numbers on your Do-Not-Call lists, company-wide and per campaign. ## Statistics - [Campaign summary](https://apidocs.dcdial.com/reference/statistics/campaign-summary/): type=campaign_summary. Returns live statistics for one running campaign. - [All campaign statistics](https://apidocs.dcdial.com/reference/statistics/all-campaign-stats/): type=get_all_stats. Returns live statistics for all your campaigns. - [Graph data](https://apidocs.dcdial.com/reference/statistics/graph-data/): type=get_graph_data. Returns a campaign’s statistics as chart-ready series. - [Campaign statistics](https://apidocs.dcdial.com/reference/statistics/campaign-stats/): type=get_campaign_stats. Returns overall statistics for one campaign. - [All graphs](https://apidocs.dcdial.com/reference/statistics/all-graphs/): type=get_all_graphs. Returns chart data for a campaign across statistics (total time, total calls, call percentages, average time). - [Dialer usage](https://apidocs.dcdial.com/reference/statistics/dialer-usage/): type=get_usage. Returns your dialer balance and current usage. - [Dashboard statistics](https://apidocs.dcdial.com/reference/statistics/dashboard-stats/): type=get_dashboard_stats. Returns the dashboard figures that summarize campaign performance. ## IVRs - [List IVRs](https://apidocs.dcdial.com/reference/ivrs/list-ivrs/): type=list_ivrs. Lists your IVR menus, newest first. - [Add IVR](https://apidocs.dcdial.com/reference/ivrs/add-ivr/): type=add_ivr. Creates an IVR menu that callers navigate with their keypad, using recorded or text-to-speech prompts. - [Delete IVR](https://apidocs.dcdial.com/reference/ivrs/delete-ivr/): type=delete_ivr. Permanently deletes an IVR menu. ## Queues - [List queues](https://apidocs.dcdial.com/reference/queues/list-queues/): type=get_queues. Lists your call queues, newest first. - [Add queue](https://apidocs.dcdial.com/reference/queues/add-queue/): type=add_queue. Creates a call queue for inbound or outbound calls. - [Delete queue](https://apidocs.dcdial.com/reference/queues/delete-queue/): type=delete_queue. Permanently deletes a call queue. ## Users - [Add user](https://apidocs.dcdial.com/reference/users/add-user/): type=add_user. Creates a user in your company with a role (admin, user or agent). - [Change password](https://apidocs.dcdial.com/reference/users/change-password/): type=change_password. Changes the password of the user who owns the token. - [Get profile](https://apidocs.dcdial.com/reference/users/get-profile/): type=get_profile. Returns the user’s profile: contact details, email settings and permissions. - [Update profile](https://apidocs.dcdial.com/reference/users/update-profile/): type=update_profile. Updates the user’s name, email or mobile number. Fields you leave out stay unchanged. - [Check permission](https://apidocs.dcdial.com/reference/users/check-permission/): type=check_permission. Checks whether the user has a permission on a module. Agents can only hold agent-interface permissions. ## Notifications - [Set notification settings](https://apidocs.dcdial.com/reference/notifications/set-notifications/): type=set_notifications. Chooses which in-app alerts the user receives and how they are delivered. - [Get notifications](https://apidocs.dcdial.com/reference/notifications/get-notifications/): type=get_notifications. Returns the user’s unread notifications. - [Clear notifications](https://apidocs.dcdial.com/reference/notifications/clear-notifications/): type=clear_notifications. Marks all of the user’s notifications as read. They stay in the notification center. - [Get notification settings](https://apidocs.dcdial.com/reference/notifications/get-notification-settings/): type=get_notifications_settings. Returns which alerts the user has turned on. ## Payments - [Create payment agreement](https://apidocs.dcdial.com/reference/payments/create-agreement/): type=create_payment_plan. Creates a payment agreement (a schedule of payments) for an account and sends it to the account holder by SMS, email or both to sign. - [Get agreement details](https://apidocs.dcdial.com/reference/payments/agreement-details/): type=agreement_details. Returns a payment agreement with its schedule and payment history. - [Get payment schedule](https://apidocs.dcdial.com/reference/payments/payment-schedule/): type=get_schedules. Returns every scheduled payment of a payment agreement or recurring plan, with dates, amounts, the balance after each payment and its status. - [Get agreement document](https://apidocs.dcdial.com/reference/payments/agreement-document/): type=get_agreement_doc. Returns the signed agreement document: account holder details, payment schedule, terms and authorization. - [Cancel agreement](https://apidocs.dcdial.com/reference/payments/cancel-agreement/): type=cancel_payment_plan. Cancels a payment agreement and all its future payments. The account holder is notified. - [Record a manual payment](https://apidocs.dcdial.com/reference/payments/add-manual-payment/): type=add_payment. Records a payment received outside DCDial (cash, check, wire…) and applies it to the account balance. No money is moved. - [Void a payment](https://apidocs.dcdial.com/reference/payments/void-payment/): type=remove_payment. Voids a recorded payment, for example after a refund, NSF or chargeback, and reverses it on the account balance. - [Refund a payment](https://apidocs.dcdial.com/reference/payments/refund-payment/): type=payment_refund. Refunds all or part of a card or ACH payment to the original payment method. - [Process a payment](https://apidocs.dcdial.com/reference/payments/process-payment/): type=charge_customer. Charges a card or bank account now, once or on a recurring schedule. - [Create a payment link](https://apidocs.dcdial.com/reference/payments/payment-link/): type=get_payment_link. Creates a secure payment link for an account. Send it yourself, or have DCDial text it to the account holder. - [Get payment status](https://apidocs.dcdial.com/reference/payments/payment-status/): type=get_payment_status. Returns the status of a payment by invoice or transaction ID. ## SMS - [Send a text message](https://apidocs.dcdial.com/reference/sms/send-message/): type=send_text_message. Sends a text message from one of your numbers to a phone number, with your own text or a saved template. - [Retrieve sent messages](https://apidocs.dcdial.com/reference/sms/sent-messages/): type=retrieve_sent_messages. Lists the text messages you sent between two dates. ## Content - [Get content](https://apidocs.dcdial.com/reference/content/get-content/): type=get_content. Returns public content used by DCDial client applications. No token needed.