{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"f46cd866-cefc-4fb8-be52-2990bc36e237","name":"WhatsLoop Documentation","description":"<img src=\"https://whatsloop.net/resources/images/logo.svg\" width=\"792\" height=\"320\">\n\n**Welcome to the Whatsloop API**\n\n🚀 Enjoy taking your business messaging to the next level. With WhatsLoop API, you can take advantage of the world's most popular messaging platform and create powerful applications that help you enhance customer service & communication needs. Get up and running quickly with our tutorials, reference guides, and examples, and start building unique solutions today. Unlock the potential of WhatsApp Business with WhatsLoop API and prepare for a whole new world of business opportunities!\n\nWhatsApp has completely transformed the communication landscape - it's used by an astounding 2 billion people, with 60 billion messages flying around daily! Businesses also realize this as a secure and reliable way to deliver notifications quickly and provide premium customer service.\n\nRelatively easy to use and integrate, the RESTful API of this tool opens up a world of possibilities. You can now connect your WhatsApp number to third-party systems, programming languages, CMS, CRMs & CLI tools.\n\nWe don't require you to hassle with SDKs or complex software dependencies - you can use the API right away with ease by sending HTTPS requests to the relevant endpoint.\n\n> \n\n#### [Note](https://whatsloop.stoplight.io/#note)\n\nTo access our API, you will need a Whatsloop account. Already have an account? [Log in](https://go-wloop.net/) now. Otherwise, create your account quickly and easily with only a few clicks - [Create an Account](https://go-wloop.net/).\n\n \n  \n\n**Send your first message today! 😍**\n\n> This documentation is regularly updated, so check back often! In addition, if you need more help or spot any mistakes while developing an application, feel free to reach out, and we'll be happy to provide assistance. \n  \n\n# Responses\n\n### Responses and Error Handling\n\nWhatsLoop has applied all the technical standards placed by the RESTFull API codes. So, developers can always receive, read, decode, or understand the errors in responses based on the following form:\n\n| RESPONSE | STATUS | MEANING |\n| --- | --- | --- |\n| 200 | Success | The request has succeeded. |\n| 201 | Created | The request has been accepted for processing and successfully inserted/updated in our database. |\n| 202 | Accepted | The request has been accepted for processing and successfully deleted from our database. |\n| 422 | Unprocessable Entity | Used if the server cannot process the entity, e.g., mandatory fields are missing in the payload. |\n| 500 | Internal Server Error | We might be updating our services; please wait a while before trying again. |\n| 503 | Service Unavailable | We could not handle the HTTP request due to a temporary overloading or maintenance of the server; please wait a while before trying again. |\n\n# **Success Message**\n\n``` json\n{\n    \"success\": true,\n    \"message\": \"The message has been successfully sent.\",\n    \"data\": {\n        \"key\": {\n        },\n        \"message\": {\n        },\n        \"messageTimestamp\": \"1677650400\", // Unix timestamp\n        \"status\": \"SUCCESS\" // SUCCESS OR PENDING\n    }\n}\n\n ```\n\n# **Single Error Message**\n\n``` json\n{\n    \"Status\": 0,\n    \"Message\": \"Phone is Required\"\n}\n\n ```\n\n# Versioning\n\n### Inevitable Change\n\n**Change in an API is unavoidable as your knowledge and experience of a system improve. To manage the impact of this change, we have decided to use URI versioning.**\n\n### URI Versioning\n\nOne way to version a REST API is to include the version number in the URI path. When we introduce the version in the URI space, the Representations of Resources are considered immutable. So when changes need to be introduced in the API, a new URI space must be created.\n\nFor example, say an API publishes the following resources – users, and privileges:\n\n```\nhttps://go-wloop.net/api/v1/send\nhttps://go-wloop.net/api/v1/message\n\n ```\n\n# Change Log\n\nThis page will cover Whats Loop APIs' hotfixes, frequent updates, bug fixes, speed improvement, and deprecated endpoints and requests.  \nWe will display both the unreleased and released updates on Whats Loop API, but now, we are made a standard API v1 with no more changes.\n\n# Webhooks\n\nWhatsLoop Webhooks allows you to set up fully automated notifications easily. As long as your WhatsApp is connected to our system, you will get notified whenever your WhatsApp Account receives payload/data.\n\nThe Webhooks are triggered when:\n\n1. New Chats.\n    \n2. New Contact.\n    \n3. New Ack\n    \n\nYou can then use the payload sent via webhooks to trigger other actions or integrate with external systems.\n\nThis makes it simple to customize your solution and keep track of all changes occurring within your WhatsApp account.\n\n# Rate Limiting\n\nAll APIs are rate-limited to ensure our platform remains stable and fair for everyone. We use a combination of techniques to implement rate limits. For example, responsibly limit calls, caching results, and re-retry requests.  \nRate limits apply based on the plan you are subscribed to; this table clarifies how it works.\n\n| PLAN | MAX REQUESTS | TIMEOUT DURATION | LEAK LIMIT |\n| --- | --- | --- | --- |\n| Basic | 60 | 1 minute | One request per second |\n| Flex | 120 | 1 minute | One request per second |\n| Extra | 180 | 1 minute | One request per second |\n\nAccording to your plan, you have x Max requests per 1 minute (Timeout duration). However, you consumed all the submissions before the minute ended. In that case, you can have one request per second (the leak limit) until the minute ends and another minute begins.\n\nLimits are calculated using the leaky bucket algorithm. All requests made after exceeding rate limits are throttled, and an HTTP 429 Too Many Requests error is returned.\n\nRequests succeed again after enough requests have emptied the bucket. You can see the state of the throttle for a store using the rate limits header.\n\nRate limits will be returned with every request in the following headers:\n\n###### X-RateLimit-Limit\n\n> This header, x-rate limit-remaining, will contain the number of calls per minute to be made to the API before rate limiting takes effect. Depending on the subscription plan, this can have a value of 60, 120, or 180. \n  \n\n###### X-RateLimit-Remaining\n\n> This header, x-rate limit-remaining, will contain the number of calls the API has left in the current rate limit window. \n  \n\n###### Retry-After\n\n> This header will contain the number of seconds the API will become available after its exceeded rate limit. \n  \n\n###### X-RateLimit-Reset\n\n> This header will contain when an API's current rate limit window resets in UTC epoch seconds. \n  \n\nIf the bucket size exceeds, an HTTP 429 Too Many Requests error is returned. The bucket empties at a leak rate of one request per second. You can make your integration average **one bid per second** to avoid being throttled. The throttle is a pass-or-fail operation.\n\n### Facing a problem?\n\nWe've got your back! Get quick and expert help with a call at +966126444462 or drop us an email at [sales@whatsloop.net](https://mailto:sales@whatsloop.net)\n\n# Sales\n\nOur sales team is here to assist - get in touch now at +966126444462 or [sales@whatsloop.net](https://mailto:sales@whatsloop.net)\n\n# Support\n\nStruggling with something? Let us lend you a hand! Our friendly & knowledgeable support team is just a message away. Message us at +966126444462 for quick help.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"26098375","team":4748116,"collectionId":"f46cd866-cefc-4fb8-be52-2990bc36e237","publishedId":"2s93JwPNFd","public":true,"publicUrl":"https://docs.whatsloop.net","privateUrl":"https://go.postman.co/documentation/26098375-f46cd866-cefc-4fb8-be52-2990bc36e237","customColor":{"top-bar":"FFFFFF","right-sidebar":"313131","highlight":"00c5bb"},"documentationLayout":"classic-single-column","customisation":null,"version":"8.10.1","publishDate":"2023-03-15T14:15:01.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"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/a23af2c667de5b048637a129fcb85c90fe3020fc613063b6abff9c3570e8b5a3","favicon":"https://whatsloop.net/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://docs.whatsloop.net/view/metadata/2s93JwPNFd"}