Evolution API
SkillCommunicationManage WhatsApp instances and send messages via the Evolution API. Use when you need to list/create/connect instances, send messages (text, media, location, contact, buttons, lists, polls), query chats/contacts, manage groups, or configure webhooks. Calls the Evolution API REST endpoints directly.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Evolution API skill
What this skill tells your AI
The instructions your AI receives, as published by evolution-foundation/evo-nexus in .claude/skills/int-evolution-api/SKILL.md and read by ahel’s review.
Interact with your Evolution API instance to manage WhatsApp connections, send messages, query chats, manage groups, and configure webhooks.
Setup (one-time)
- Get your API URL and global API key from your Evolution API instance.
- Set environment variables:
EVOLUTION_API_URL=https://api.evolution-api.com EVOLUTION_API_KEY=your-global-api-key
Instance Management
List all instances
python3 scripts/evolution_api_client.py instances
Create a new instance
python3 scripts/evolution_api_client.py create_instance my-instance
python3 scripts/evolution_api_client.py create_instance my-instance --qrcode
Connect instance (returns QR code)
python3 scripts/evolution_api_client.py connect my-instance
Get connection state
python3 scripts/evolution_api_client.py connection_state my-instance
Restart an instance
python3 scripts/evolution_api_client.py restart my-instance
Logout and disconnect
python3 scripts/evolution_api_client.py logout my-instance
Delete an instance
python3 scripts/evolution_api_client.py delete_instance my-instance
Set presence
python3 scripts/evolution_api_client.py set_presence my-instance --presence available
Summary of all instances
python3 scripts/evolution_api_client.py summary
Send Messages
Send text
python3 scripts/evolution_api_client.py send_text my-instance 5511999999999 "Hello, world!"
Send media (image, video, audio, document)
python3 scripts/evolution_api_client.py send_media my-instance 5511999999999 --type image --url https://example.com/photo.jpg --caption "Check this out"
Send location
python3 scripts/evolution_api_client.py send_location my-instance 5511999999999 --lat -23.5505 --lng -46.6333 --name "Sao Paulo"
Send contact card
python3 scripts/evolution_api_client.py send_contact my-instance 5511999999999 --name "John Doe" --phone 5511888888888
Send buttons
python3 scripts/evolution_api_client.py send_buttons my-instance 5511999999999 --text "Choose an option" --buttons '[{"buttonId":"1","buttonText":{"displayText":"Option 1"}}]'
Send list
python3 scripts/evolution_api_client.py send_list my-instance 5511999999999 --title "Menu" --sections '[{"title":"Section 1","rows":[{"title":"Item 1","rowId":"1"}]}]'
Send poll
python3 scripts/evolution_api_client.py send_poll my-instance 5511999999999 --name "Favorite color?" --values "Red,Blue,Green"
React to a message
python3 scripts/evolution_api_client.py send_reaction my-instance --key '{"remoteJid":"5511999999999@s.whatsapp.net","fromMe":false,"id":"MSG_ID"}' --reaction "👍"
Send template message
python3 scripts/evolution_api_client.py send_template my-instance 5511999999999 "Template text here"
Chat Operations
Find chats
python3 scripts/evolution_api_client.py find_chats my-instance
python3 scripts/evolution_api_client.py find_chats my-instance --where '{"id":"5511999999999@s.whatsapp.net"}' --take 10
Find messages
python3 scripts/evolution_api_client.py find_messages my-instance --where '{"key":{"remoteJid":"5511999999999@s.whatsapp.net"}}' --take 20
Mark messages as read
python3 scripts/evolution_api_client.py mark_read my-instance --messages '[{"remoteJid":"5511999999999@s.whatsapp.net","fromMe":false,"id":"MSG_ID"}]'
Archive/unarchive chat
python3 scripts/evolution_api_client.py archive_chat my-instance 5511999999999 --archive true
Update profile name
python3 scripts/evolution_api_client.py update_profile_name my-instance "New Name"
Update profile status
python3 scripts/evolution_api_client.py update_profile_status my-instance "Available for business"
Contacts
Find contacts
python3 scripts/evolution_api_client.py find_contacts my-instance --where '{"id":"5511999999999@s.whatsapp.net"}'
Check numbers on WhatsApp
python3 scripts/evolution_api_client.py check_numbers my-instance --numbers 5511999999999,5511888888888
Group Operations
Create group
python3 scripts/evolution_api_client.py create_group my-instance --subject "My Group" --participants 5511999999999,5511888888888
Get group info
python3 scripts/evolution_api_client.py group_info my-instance --jid 120363xxxxx@g.us
List group participants
python3 scripts/evolution_api_client.py group_participants my-instance --jid 120363xxxxx@g.us
Add/remove/promote/demote participants
python3 scripts/evolution_api_client.py update_participant my-instance --jid 120363xxxxx@g.us --action add --participants 5511999999999
Webhook Management
List webhooks
python3 scripts/evolution_api_client.py webhooks my-instance
Set webhook
python3 scripts/evolution_api_client.py set_webhook my-instance --url https://example.com/hook --events messages.upsert,connection.update
Delete webhook
python3 scripts/evolution_api_client.py delete_webhook my-instance
Output
All output is JSON to stdout. Use --json flag for raw JSON on any command (default behavior).
Notes
- Phone numbers use country code format without
+(e.g.5511999999999). - Group JIDs follow the pattern
120363...@g.us. - The
connectendpoint returns a QR code as base64 PNG in the response. - The
summarycommand is composite: it callsfetchInstancesthenconnectionStatefor each instance.
Signals
- GitHub stars
- 533
- Forks
- 177
- Last commit
- May 2026
Advanced
- Catalog kind
- skill
- Gateway key
int-evolution-api- Source
- github.com/evolution-foundation/evo-nexus