Python async client for WhatsApp RPC WebSocket API
Project description
WhatsApp RPC - Python Client
Async Python client for the WhatsApp RPC WebSocket API.
Installation
pip install whatsapp-rpc
Requires the WhatsApp RPC server running separately:
npm install -g whatsapp-rpc
npx whatsapp-rpc start
Usage
import asyncio
from whatsapp_rpc import WhatsAppRPCClient
async def main():
client = WhatsAppRPCClient("ws://localhost:9400/ws/rpc")
await client.connect()
# Check status
status = await client.status()
print(status)
# Send a text message
await client.send(phone="1234567890", type="text", message="Hello!")
# Send an image
await client.send(
phone="1234567890",
type="image",
media_data={
"data": "<base64>",
"mime_type": "image/jpeg",
"caption": "Check this out!"
}
)
# List groups
groups = await client.groups()
# Get chat history
history = await client.chat_history(phone="1234567890", limit=50)
await client.close()
asyncio.run(main())
Events
async def main():
client = WhatsAppRPCClient("ws://localhost:9400/ws/rpc")
def on_event(event):
if event["method"] == "event.message_received":
print(f"New message: {event['params']['text']}")
client.event_callback = on_event
await client.connect()
# Keep running to receive events
await asyncio.sleep(3600)
await client.close()
API Methods
| Method | Description |
|---|---|
status() |
Get connection status |
start() / stop() / restart() |
Control WhatsApp service |
qr() |
Get QR code for pairing |
send(**kwargs) |
Send message (text, image, video, audio, document, location, contact) |
media(message_id) |
Download media from message |
groups() |
List all groups |
group_info(group_id) |
Get group details |
contacts(query) |
List contacts |
contact_check(phones) |
Check WhatsApp registration |
chat_history(**kwargs) |
Get message history |
typing(jid, state) |
Send typing indicator |
presence(status) |
Set online/offline |
mark_read(message_ids, chat_jid) |
Mark messages as read |
rate_limit_get() / rate_limit_set(**config) |
Rate limiting config |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
whatsapp_rpc-0.0.7.tar.gz
(6.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file whatsapp_rpc-0.0.7.tar.gz.
File metadata
- Download URL: whatsapp_rpc-0.0.7.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3086bb297ab72eed84a593946fa5b7f7b6729be5cb1dcd3e829f8367ff8ccfba
|
|
| MD5 |
f239f43fe9c3ba917264d8c6ac2e5963
|
|
| BLAKE2b-256 |
3dbd7e6c726e6f01e56c2bf0ac3bd9fcada48a4316bd8dc5b9077168aabe1163
|
File details
Details for the file whatsapp_rpc-0.0.7-py3-none-any.whl.
File metadata
- Download URL: whatsapp_rpc-0.0.7-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f4187c1dc32548a347181c2fad44306e787d7baf06b5a63f274273ff1d1b3c9
|
|
| MD5 |
978b00965559dcd6588afa9c7c4c24f2
|
|
| BLAKE2b-256 |
b015099629a656a6171f519361645349e7e03e4ff0f70a43330d6fd4ded48431
|