{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"173c51d7-f6d5-4a81-8fd0-cdf68003a68a","name":"Callerdesk API","description":"# Welcome to Callerdesk API Reference\n\nIt is built especially for businesses to help them intelligently manage callers and for automating self-service options. It can be useful for gathering actionable customer information and meeting customer expectations in a timely manner, thus eliminating wait times and increasing chances of giving continuous business.\n\n<u><i><b>What can you expect from using us?</b></i></u>\n\n- Build a solid cloud call telephony solution that your team can use to handle calls easily, onboard new members faster, become remote-friendly, and provide better workflows overall;\n    \n- Build a virtual contact center to enable a call support system for your customers;\n    \n- Integrate it with other SaaS solutions you might already use for business management.\n    \n\nThe platform is relatively intuitive and easy to use, but we still find some use cases are not obvious, so let's dive into our documentation.\n\n# 1.Authentication\n\nAuthenticate your workspace when using the API by including your API Key in the request. You can access your API Key in the Integration Settings on your Callerdesk dashboard.\n\nPlease note that your API Key grants you access to your private contact data in Callerdesk. Therefore, it should not be shared outside of your company. If a certain integration, not listed on our Integrations page, requests your API Key, please contact us and refrain from sharing your key with anyone. Additionally, ensure that you do not disclose your API key in publicly accessible areas such as GitHub or client-side code.\n\nYou need to send your API Key in the authcode parameter\n\nAll API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.\n\nTo test requests using your account, replace the sample API key with your actual API key or sign in .\n\n# 2.About Webhooks Integration\n\nIn today's digital era, where corporate norms and procedures are constantly expanding, it is not uncommon to use a variety of different applications and apps. However, it's crucial that these two (or more) applications synchronise or interact with one another flawlessly.\n\nCallerDesk provides [API](https://api.callerdesk.io/) and Webhooks to enable such swifter communication.\n\nWebhooks and API, however, operate in different ways. To give one easy example, **when you ask API to do something, it will do it. Webhooks, on the other hand, will carry out the same function when specific events occur or specified requirements/situations are achieved.**\n\nIn addition to automating processes, Webhooks also saves a tonne of manual work and is quite simple to design and utilise.\n\nLet's explore to fully comprehend,\n\n## **How Do Webhooks Work?**\n\nTo put it simply, a Webhook is an HTTP callback or an HTTP POST that notifies a server of an occurrence.\n\nIn other words, Webhooks facilitate communication between two apps by sending \"event-notifications\" via HTTP POST (CallerDesk Platform + other integrated application). When a \"event\" happens, it merely sends a message (including all the valuable data) over a URL to the third party application. Usually, the third-party programme provides this URL. In CallerDesk Platform, you can choose specific occurrences or circumstances that will permit communication between the Webhook and the integrated third-party application.\n\n## **What Are the Benefits of Using Webhooks?**\n\nWebhooks should be used if you want your two (or more) applications to work in concurrently. Webhooks are very user-friendly, flexible, and customizable. In other words, a webhook can be used for either a single event or a collection of events.\n\nAdditionally, Webhooks save a lot of manual work because they deliver real-time notifications and instantly synchronise with the integrated 3rd party application.\n\n## **APIs Vs Webhooks**\n\nAPIs deliver you the data when you ask for it but Webhooks eliminate the requirement for a user to send a request. As soon as the data is available, you get it.\n\n_Example_\n\n_Using APIs, you must keep polling every few seconds until a new call is received if you want to determine whether a new call lead has been received or not. However, if you're utilising Webhooks, you may set up a webhook event called \"call report\" to get alerts whenever a caller connects with the IVR._\n\n# 2.1 CallerDesk <> Webhook\n\nCallerDesk event is a specific type of activity. Call report, live call answers, the addition, deletion, and updating of members or call groups are all included in this. Each interaction is recorded in CallerDesk's \"Events\" section, and the corresponding \"Event Data\" is sent in a JSON format to the external app.\n\nIn the CallerDesk Platform, events fall into four main categories. **The Webhook is activated when one or more of the events specified below occurs :**\n\n| Webhook Event | Description | Type |\n| --- | --- | --- |\n| Call Events | This webhook integration of the platform allows to get alll the inbound and outgoing call reports. | **Call Report** – Call detailed information after disconnection.  <br>  <br>**Live Call** – When an incoming/outgoing call is triggered.  <br>  <br>**App Call Report** - Call detailed information after disconnection. ( From APP ) |\n| Member Events | This webhook integration of the platform allows to get the details of added new members, updating and deleting members | **Add Member** - When a member is created.  <br>  <br>**Update Member**\\- When a member is updated.  <br>  <br>**Delete Member** - When a member is deleted. |\n| **CallGroup Events** | This webhook integration of the platform allows to get the details of added new callgroup, updating and deleting callgroup.  <br>  <br>This webhook integration of the platform allows to get the details of the  <br>  <br>This webhook integration of the platform allows to get the details of the This API is used to get the call groups list. | **Add Call Group** - When a Call group is created.  <br>  <br>**Update Call Group** - When a Call group is updated.  <br>  <br>**Delete Call Group** - When a Call group is deleted. |\n| **Security Activity** | This webhook integration of the platform allows to get the details of all activity happening in the platform by your team i.e login time, export data etc | **Security Activity -** When an activity happens on the web platform. |\n\n_**To set up webhooks:**_\n\nLog onto the CallerDesk Dashboard to configure webhooks and select and navigate to **Dashboard → API & Integration → Webhooks.**\n\n<img src=\"https://content.pstmn.io/371a7779-24f3-4afd-9ba7-622fab074971/MTExMS5qcGc=\">\n\n**2\\. Select \"+ Create Webhook\" from the menu.**\n\n<img src=\"https://content.pstmn.io/dc2d7b75-0cb8-44d9-a81c-38d30c066db6/MjIyMjIgY29weS5qcGc=\">\n\n3\\. **Enter the URL you wish to receive the webhook payload** at when an event is triggered in the Webhook Setup pop-up window. We advise using an HTTPS URL\n\n<img src=\"https://content.pstmn.io/4bad88c6-00af-4603-80f5-e50fa7f19279/MzMzMy5qcGc=\">\n\n4\\. **Enter the email address where notifications should be sent** in the event that a webhook fails in the Alert Email area. You will receive notifications about webhooks, such as failures, deactivation, and so on.\n\n<img src=\"https://content.pstmn.io/3363c77b-6d2c-4c4f-8604-c719bed28bae/NDQ0NC4uanBn\">\n\n5\\. **From the list of Active Events, pick the necessary events.**\n\n<img src=\"https://content.pstmn.io/2826ae10-b860-487f-9bb5-9513cef715f9/NTUuanBn\">\n\n6\\. **Then click to submit Create Webhook tab mentioned in the popup screen**. A webhook is added to the list of webhooks after being set.\n\n**To make more modifications, select the webhook and click Edit.**\n\n> _**Handy Hints**_  \n1\\. Webhooks can only be sent to publicly accessible URLs.  \n2\\. You won't be able to add the URL and will experience an error if it contains the domain CallerDesk.  \n3\\. You will encounter a not allowed error if you try to save a localhost endpoint as part of a webhook configuration. \n  \n\nNote: This webhook integration is a premium feature. To know more about it, please connect with your account manager.\n\n# 2.2 Test & Validate Webhook\n\nYou can do a test of the webhooks to see if the payloads are correct or to make sure the integration is functioning. When a transaction is performed in Test mode, test events are triggered. Since the format of the payload is consistent between the Live and Test environments, you may have faith in your pre-production checks. Webhooks can be tested with using [request interceptor tools](https://webhook.site/)**.**\n\n- **Using Request Interceptor Tools🔗**\n    \n\nThe internet provides a plethora of free, high-quality webhook testing tools. Performing search on Google for \"test webhooks online” will bring up a number of different sites where you can put your webhook testing skills to the test.\n\n**To test webhooks:**\n\n1\\. Visit [https://webhook.site](https://webhook.site) to test webhooks.\n\n<img src=\"https://content.pstmn.io/ea5abaf5-a250-4a3e-a04b-7d3fda14934a/MTFhUTFKMFNaajBvT2hpSk51YTJSeHJfc2NyZWVuc2hvdC0wMi0wMS0yMDIzLWF0LTIxMzQuanBn\">\n\n2\\. 2. In the Callerdesk Panel's , [Webhook&nbsp;URL field](https://app.callerdesk.io/admin/webhook-configuration) paste the endpoint that you copied in the previous step. Be sure to log in to the platform first before clicking the link to the CallerDesk Webhook Page above.\n\n<img src=\"https://content.pstmn.io/d687f3d8-e05b-412c-b7d9-5e03a4dadcaf/MjIuN1FlXzFTMXZpR3pHZ1dDZHBiY0xaX3NjcmVlbnNob3QtMDItMDEtMjAyMy1hdC0yMTM1LmpwZw==\">\n\n# 3\\. About POSTMAN for API testing\n\n#### **What is Postman?**\n\nPostman is an API testing tool that can easily be integrated into a [CI/CD pipeline](https://en.wikipedia.org/wiki/CI/CD) and scales to meet your needs.\n\nThe goal is to make the API workflow more straightforward during testing and development. The abbreviation \"API\" stands for \"Application Programming Interface,\" and it is this interface that enables software applications to connect with one another by making API calls.\n\nThe purpose of this tutorial is to provide you with a high-level overview of how to make your initial queries to the CallerDesk API utilising the API testing tool known as _**Postman**_\n\n#### Why Use Postman?\n\nPostman Software, which currently has more than 20 million users, has developed into a popular choice of tool for the following reasons:\n\n- **Accessibility :** In order to utilise the Postman tool, a user simply needs to log in to their own accounts, which makes it simple to access files whenever and wherever they need to as long as a Postman application is installed on the computer.\n    \n\n- **Utilisation of Collections :** Postman users are given the ability to generate collections for usage with Postman API requests. Each collection has the ability to generate multiple requests and subfolders. This helps organise your test suites in a more efficient manner.\n    \n\n- **Collaboration :** You are able to import or export collections and environments, which makes it simple to exchange files with other users. Sharing collections can also be accomplished through the use of a direct link.\n    \n\n- **Developing Environments** : Having numerous environments helps reduce the amount of time spent repeating tests because one may utilise the same collection of data but apply it to a new setting.\n    \n\n- **Creation of Tests** : Test checkpoints, such as validating for a successful HTTP response status, can be added to each Postman API call, which helps assure test coverage and contributes to the overall quality of the tests.\n    \n\n- **Automation Testing** : Tests can be performed in several iterations to save time for repetitious tests by making use of either the Collection Runner or Newman.\n    \n\n- **Debugging Postman's console:** makes it simple to see what data has been retrieved, which simplifies the process of debugging tests.\n    \n\n- **Continuous Integration** : The capacity to support continuous integration ensures that development practises are kept up to date.\n    \n\n#### Install or Login directly through Browser\n\nIf you do not already have Postman, you can start by downloading it and installing it on your computer. [https://www.getpostman.com/downloads/](https://www.getpostman.com/downloads/)\n\n## Tutorial on how to use Postman to interact with APIs\n\nThe Postman's Workspace can be found down below. Let's go over the process of how to utilise Postman step by step, as well as the various capabilities that are available in the Postman tool!\n\n1. **New** : This is the section in which you will be able to create a new request, collection, or environment.\n    \n2. **Import** : With this function, you can bring in a collection or an environment. Import from file, import from folder, import from link, or paste raw text are some of the choices.\n    \n3. **Workspace** : Create a new workspace for yourself or collaborate with others using the \"My Workspace\" feature.\n    \n4. **Invite** : Collaborate with other members of your team on a workspace by inviting them.\n    \n5. **History** : The requests that you have sent in the past will be presented in the History section. Because of this, it is simple to keep track of the actions that you have completed.\n    \n6. **Collections**: Create collections to organise your test suite and keep everything in its proper place. There may be numerous requests and subfolders associated with each collection. Duplicating a request or a folder is another option that is available.\n    \n7. **Request tab :** When you click on the Request tab, the title of the request that you are now working on will be displayed here. For requests that did not have titles, the message \"Untitled Request\" would be displayed by default.\n    \n8. **HTTP Request** : Selecting this item will bring up a dropdown menu with a variety of request options, including GET, POST, COPY, and DELETE, among others. The GET and POST queries are the ones that are utilised the most frequently when testing the Postman API.\n    \n9. **Request URL** : Also referred to as an endpoint, this is the location in which you will identify the link to the location with which the API will communicate.\n    \n10. **Save** : Click the \"Save\" button whenever there are modifications to be made to a request. This ensures that the latest modifications will not be lost or overridden by previous ones.\n    \n11. **Params** – This is the section in which you will enter the parameters required for a request, such as the key values.\n    \n12. **Authorization** : It is necessary to have the appropriate authorisation in order to use APIs. It could take the shape of a username and password, a bearer token, or something else entirely.\n    \n13. **Headers** : Depending on the requirements of the organisation, you have the ability to set headers such as the content type JSON.\n    \n14. **Body** : This is the section of a request that is typically used for POST requests, and it is where one can customise the specifics of the request.\n    \n\n**To learn more, click the detailed tutorial** [here](https://learning.postman.com/docs/introduction/overview/)\n\n# 3.1 CallerDesk <> POSTMAN\n\n## **Authorization**\n\nAdding your 'Basic Auth' is the easiest method to authorize your requests. To accomplish this, you must first locate your API key & Secret Key from your callerdesk platform under \"API Integration\" section.\n\nAfter that, proceed with the remaining steps, which are as follows:\n\n- To give Postman permission to process your requests, you will need to add your Basic Auth to Postman by selecting the drop-down menu (the icon with three dots) near collection name.\n    \n- Choose \"Edit\".\n    \n- On the newly created edit screen, navigate to the \"Authorization\" tab and click there.\n    \n- Add the type of authorization method as '**Basic Auth**' ,\n    \n- And then enter the \"your callerdesk account API Key\" as \"username\" & \"Secret Key\" as password.\n    \n- Now you may verify everything by clicking the \"Update\" button.\n    \n\nAt this point, you are able to make your initial requests. Make certain that <u><i><b>\"Basic Auth\"</b></i></u> is selected as the authorisation type under the authorisation tab.\n\n<img src=\"https://content.pstmn.io/e990bfad-b0c1-4707-87a4-32e975daa6fb/UU96OXFHY2hhWUJvZE1WakNlODAxX2NhbGxlcmRlc2twb3N0bWFuLmdpZg==\">","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"36976357","team":2777084,"collectionId":"173c51d7-f6d5-4a81-8fd0-cdf68003a68a","publishedId":"2sA3kPp4vp","public":true,"publicUrl":"https://api.callerdesk.io","privateUrl":"https://go.postman.co/documentation/36976357-173c51d7-f6d5-4a81-8fd0-cdf68003a68a","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"The platform is relatively intuitive and easy to use, but we still find some use cases are not obvious, so let's dive into our documentation."},{"name":"title","value":"Callerdesk API's "}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-01-08T07:07:10.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Callerdesk API's ","description":"The platform is relatively intuitive and easy to use, but we still find some use cases are not obvious, so let's dive into our documentation."},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/a47e5047523d98a4715f1dd7cdde2f261ec284bac7d9c8772d8f6c13155325a7","favicon":"https://callerdesk.io/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://api.callerdesk.io/view/metadata/2sA3kPp4vp"}