WPPSERVER is an unofficial WhatsApp API server, which is a software programming platform created by third parties that allows developers to integrate WhatsApp into their existing applications or systems. This API offers a wide range of features and functionalities, including the ability to send and receive messages, images and documents, obtain user profile information and more.
This API does not use Puppeteer on headless Chrome, nor an Android emulator. It talks directly to WhatsApp websocket servers, thus is quite fast and uses much less memory than those solutions. The API is available in a native binary compiled for the main operating systems, It consumes about 2~8mb of memory and is approximately 20mb in total size, this makes this solution faster and more optimized than other solutions created at the level of interpreted programming languages such as php, node or python.
API is released with an initial set of features and over time new features are added. This occurs for several reasons, such as resource and time constraints during development, the need to collect user feedback to identify the main demands for new features, or to ensure that the quality of the API is maintained and that new features are added regularly safe and reliable way.
Finished | In progress | Not started | |
---|---|---|---|
User authentication route | ✓ | ||
User management route (get, update, delete etc..) | ✓ | ||
API KEYs management route | ✓ | ||
Webhook management route | ✓ | ||
Sends a text by message |
✓ | ||
Sends a image by message |
✓ | ||
Sends a document by message |
✓ | ||
Sends a audio by message | ✓ | ||
Sends a video by message | ✓ | ||
Sends a location message | ✓ | ||
Sends a sticker message | ✓ | ||
Sends a template message | ✓ | ||
Reacts to a message | ✓ | ||
List subscribed groups | ✓ | ||
Get Group Invite Link | ✓ | ||
Gets group information | ✓ | ||
Changes group name | ✓ | ||
Changes group photo | ✓ | ||
Get all contacts | ✓ | ||
Phone information scraping | ✓ |
Supported Operational System:
Supported Database:
Development Packages:
Optional:
/assets
: This folder is used to store static project resources/bin
: This folder is used to store the binary files generated after compiling the Go source code/cmd
: This folder is used to store the source code files that implement the command line commands (CLI) for the application/dbdata
: This folder is used to store database (sqlite) data files/docs
: This folder is used to store project documentation/pkg
: This folder is used to store packages that can be imported into other projects/internal
: This folder is used to store internal packages of the project itself. By nature they are not reusable/.env
: This file is used to store and define sensitive information that should not be shared publicly/Dockerfile
: This file is used to create a Docker image for the application/debug.log
: This file contains logging information to help debug the running applicationBy default, it will start a REST service using settings from the ".env" file in the root of the project. These are the parameters you can use to change your execution.
Commands:Example:
$ ./wppserver -mode=run -envfile=user/path/file/
Or install and start the server to run the process as a service. Example:
$ ./wppserver -mode=install -envfile=user/path/file/
$ ./wppserver -mode=start
The provided software allows users to easily run a WhatsApp API server.
Before running the application, the user needs to customize their configuration preferences, which can be easily done by editing the ".env" file at the root of the project. After defining their configuration preferences, the user can execute the CLI with the appropriate commands to start the REST API server.
There are 2 options for execution:
Using the application binaries located in the "/bin" folder of the project.
It is important to note that the user should use the binary corresponding to their operating system and architecture within the/bin
folder. Otherwise, an error may occur in the CLI execution. After identifying the architecture and version of their operating system, the user should look for the corresponding binary in the /bin
folder and use it to execute the CLI. For example, if their operating system is 64-bit Linux, the corresponding binary would be something like "wppserver-linux-amd64". Finally, use the listed commands to manage the application. To do so, follow these steps:
I - Extract the project contents into a directory on your machine.
II - Open the terminal or command prompt and navigate to the root of the project where the binary files and the env file are located.
III - Inside the /bin
folder, look for the binary file corresponding to your operating system inside the directory.
IV - Copy the ".env" model located at the root of the project to the same directory as the binary file of the API server.
V - Run the install command to install the API server on your system:
$ ./wppserver -mode=install
VI - After installation, start the API server by running the command:
$ ./wppserver -mode=start
VII - To stop the server, run the command:
$ ./wppserver -mode=stop
VIII - To restart the server, run the command:
$ ./wppserver -mode=restart
IX - To uninstall the API server from your system, run the command:
$ ./wppserver -mode=uninstall
If you want to upload the binary file and the "env" model to a remote server, you can use ftp/sftp to transfer your files. After run the installation process again.
Execution via Docker.
If the user chooses to run the application via Docker, they need to run the Dockerfile to build the container image. To do so, follow these steps: I - Extract the project contents into a directory on your machine.docker build -t wppserver .
to build the container image.
IV. Wait until the image build process is completed.
VI. After the image is built, run the command docker run -p 3000 wppserver
to start the container.
Done! The WhatsApp API server is now running in the Docker container. Remember to edit the .env file in root of the project before running the Dockerfile to define the API server's configuration preferences.
After starting the server, the user must make a request to the /auth
API endpoint, passing the initial email and password defined in the ".env" file to obtain the access_token
. Optionally you can create a new user and use your email and password in the authentication route to obtain the access_token.
Then, the user must make a new request to the /device/login
API endpoint to obtain and scan the generated QR Code. To do this, it is necessary to open the WhatsApp application on your mobile device and access the "Devices" menu. Then, point the camera of your mobile device to the QR Code extracted from the request payload and wait for the connection confirmation. After connected, the user can start using the WhatsApp API.
API calls should be made with content type json, and parameters sent into the
request body, always passing the access_token
for authenticating the request.
Check the Swagger API Reference
Once again, thank you so much for purchasing this project. As I said at the beginning, I'd be glad to help you if you have any questions relating to this project. No guarantees, but I'll do my best to assist. If you have a more general question relating to the project on Code Canyon, you might consider visiting the forums and asking your question in the "Item Discussion" section.
Although not officially supported by WhatsApp, this API allows developers to create customized and innovative solutions for their customers and end users. However, it is important to note that the use of an unofficial API may violate WhatsApp's terms of service.
This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by WhatsApp or any of its affiliates or subsidiaries. This is an independent and unofficial software. Use at your own risk.
Any third party name, trademark, logo or image mentioned, used or referenced in this content are the sole property of their respective owners. Mention or use of such third party names, trademarks, logos or images does not imply affiliation, sponsorship or endorsement by this content or the owner of this content.