WhatsApp API avatar
WhatsApp API

Pricing

Pay per event

Go to Apify Store
WhatsApp API

WhatsApp API

Developed by

Oussama Production

Oussama Production

Maintained by Community

A powerful WhatsApp API to send and receive text, images, and videos with ease — built for scalability, flexibility, and seamless integration into CRMs, e-commerce platforms, or chatbots.

0.0 (0)

Pricing

Pay per event

0

9

9

Last modified

12 days ago

📱 WhatsApp API (unofficial) - Send Messages at Scale

Powerful WhatsApp messaging automation for businesses, e-commerce, and customer support teams

Send text messages, images, videos, and documents through WhatsApp Business API. Perfect for order notifications, customer support, marketing campaigns, and chatbot integrations.


🚀 Why Choose This WhatsApp API?

Enterprise-Grade Reliability - Built for high-volume messaging
Multi-Media Support - Text, images, videos, audio, documents
Group Management - Send to groups and manage members
Real-Time Tracking - Monitor sent/received messages
Easy Integration - Works with any CRM, e-commerce platform, or chatbot
QR Code Automation - Automatic WhatsApp Web connection setup


💼 Perfect For

  • E-commerce: Order confirmations, shipping updates, abandoned cart recovery
  • Customer Support: Automated responses, ticket notifications
  • Marketing: Promotional campaigns, event notifications
  • Healthcare: Appointment reminders, test results
  • Education: Class notifications, assignment reminders
  • Real Estate: Property alerts, viewing confirmations

⚡ Quick Start in 3 Steps

Step 1: Create Your Account

{
"action": "create_account",
"password": "your-secure-password"
}

Step 2: Connect WhatsApp

{
"action": "create_whatsapp",
"password": "your-secure-password"
}

Scan the QR code with your WhatsApp Business app

Step 3: Send Messages

{
"action": "send_message",
"password": "your-secure-password",
"unique": "your-whatsapp-id",
"recipient": "+1234567890",
"message": "Hello! Your order #12345 is confirmed.",
"type": "text"
}

That's it! Start sending WhatsApp messages in under 5 minutes.


🎯 Key Features & Actions

FeatureActionDescription
🔐 Account Setupcreate_accountCreate your WhatsApp API account with 100 free credits
📊 Account Infoaccount_infoView account details, credits, and connected WhatsApp accounts
🔗 Connect WhatsAppcreate_whatsappGenerate QR code to link your WhatsApp Business account
📋 List Accountsget_wa_accountsSee all your connected WhatsApp accounts
🗑️ Remove Accountdelete_wa_accountDisconnect a WhatsApp account
💬 Send Messagessend_messageSend text, media, or document messages
📥 Received Messagesget_wa_receivedFetch messages sent to your WhatsApp
📤 Sent Messagesget_wa_sentView your message history and delivery status
👥 Groupsget_wa_groupsList all groups your WhatsApp is part of
👤 Group Membersget_wa_groups_membersGet member list for specific groups
Phone Validationvalidate_wa_phoneCheck if a phone number has WhatsApp

📝 Input Configuration

Required Parameters

  • action: Choose from 11 available actions
  • password: Your account identifier (auto-generated or custom)

Message Parameters

  • unique: WhatsApp account ID (from get_wa_accounts)
  • recipient: Phone number in E.164 format (+1234567890) or group ID
  • message: Your text message or media caption
  • type: text, media, or document

Media & Document Options

  • Media: JPG, PNG, GIF, MP4, MP3, OGG files via URL
  • Documents: PDF, DOC, DOCX, XLS, XLSX, XML files via URL
  • Priority: Set message urgency (1=immediate, 2=normal)

💻 Real-World Examples

🛒 E-commerce Order Notification

{
"action": "send_message",
"password": "ecommerce-store-2024",
"unique": "wa_business_001",
"recipient": "+1234567890",
"message": "🎉 Order #12345 confirmed!\n\n📦 Items: MacBook Pro\n💰 Total: $1,299\n📅 Delivery: Dec 15\n\nTrack: https://track.example.com/12345",
"type": "text",
"priority": 1
}

🏥 Medical Appointment Reminder

{
"action": "send_message",
"password": "clinic-system",
"unique": "wa_clinic_01",
"recipient": "+1234567890",
"message": "⏰ Appointment Reminder\n\nDr. Smith - Tomorrow 2:00 PM\nPlease arrive 15 minutes early.\n\nCancel: Reply CANCEL",
"type": "text"
}

📸 Send Product Image

{
"action": "send_message",
"password": "fashion-store",
"unique": "wa_fashion_01",
"recipient": "+1234567890",
"message": "Check out our new summer collection! 🌞",
"type": "media",
"media_url": "https://store.com/images/summer-dress.jpg",
"media_type": "image"
}

📄 Send Invoice Document

{
"action": "send_message",
"password": "accounting-firm",
"unique": "wa_accounting",
"recipient": "+1234567890",
"message": "Your invoice is ready for download",
"type": "document",
"document_url": "https://invoices.com/inv-12345.pdf",
"document_name": "Invoice-December-2024.pdf",
"document_type": "pdf"
}

🔧 Integration Examples

Python Integration

from apify_client import ApifyClient
client = ApifyClient("your-apify-token")
# Send welcome message to new customers
def send_welcome_message(phone_number, customer_name):
run_input = {
"action": "send_message",
"password": "your-password",
"unique": "your-wa-id",
"recipient": phone_number,
"message": f"Welcome {customer_name}! Thanks for joining us. 🎉",
"type": "text"
}
run = client.actor("whatsapp-api").call(run_input=run_input)
return run

JavaScript/Node.js

const { ApifyApi } = require('apify-client');
const client = new ApifyApi({ token: 'your-apify-token' });
// Send order confirmation
async function sendOrderConfirmation(orderData) {
const input = {
action: 'send_message',
password: 'your-password',
unique: 'your-wa-id',
recipient: orderData.customerPhone,
message: `Order #${orderData.id} confirmed! Total: $${orderData.total}`,
type: 'text'
};
const run = await client.actor('whatsapp-api').call(input);
console.log('Message sent:', run);
}

Webhook Integration

# Flask webhook example
@app.route('/order-webhook', methods=['POST'])
def handle_new_order():
order = request.json
# Send WhatsApp notification
apify_input = {
"action": "send_message",
"password": "store-password",
"unique": "wa-store-id",
"recipient": order['customer_phone'],
"message": f"Order #{order['id']} received! We'll prepare it shortly.",
"type": "text"
}
# Trigger Apify Actor
requests.post(APIFY_WEBHOOK_URL, json=apify_input)
return {"status": "sent"}

📊 Output Examples

Successful Message Response

{
"success": true,
"data": {
"id": "msg_12345",
"status": "sent",
"recipient": "+1234567890",
"timestamp": "2024-12-15T10:30:00Z",
"credits_used": 1,
"message_type": "text"
}
}

Account Creation Response

{
"success": true,
"account_data": {
"PASSWORD": "generated-password-123",
"credits": 100,
"timezone": "America/New_York",
"country": "US",
"theme": "dark",
"wa_accounts": []
},
"message": "Account created successfully"
}

WhatsApp QR Code Response

{
"success": true,
"data": {
"unique": "wa_business_12345",
"qr_link": "https://zender.com/qr/wa_business_12345",
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"status": "waiting",
"expires_in": 300
}
}

⚠️ Common Issues & Solutions

🔐 Authentication Error

Problem: "Invalid password or account not found"
Solution: First run create_account to set up your account

🆔 Missing WhatsApp ID

Problem: "unique key is required"
Solution: Run get_wa_accounts to get your WhatsApp account IDs

📱 Phone Number Issues

Problem: Messages not delivering
Solution: Use E.164 format (+country+number) and validate with validate_wa_phone

🖼️ Media Upload Errors

Problem: Media files not sending
Solution: Ensure URLs are publicly accessible and files are under 16MB


💡 Pro Tips

🎯 Best Practices

  • Rate Limiting: Send max 80 messages/minute per WhatsApp account
  • Opt-in Required: Only message users who opted in
  • Personal Touch: Use recipient names in messages
  • Time Zones: Send messages during business hours
  • Media Optimization: Compress images/videos for faster delivery

🔒 Security Tips

  • Store passwords securely (use environment variables)
  • Validate all phone numbers before sending
  • Monitor failed delivery rates
  • Rotate API credentials regularly

📈 Scaling Tips

  • Use multiple WhatsApp accounts for high volume
  • Implement retry logic for failed messages
  • Cache frequently used data
  • Monitor credit usage and top up automatically

🔗 Use Cases by Industry

🛍️ E-commerce & Retail

  • Order confirmations and shipping updates
  • Abandoned cart recovery messages
  • New product announcements
  • Customer support and returns

🏥 Healthcare & Wellness

  • Appointment reminders and confirmations
  • Test results and health reports
  • Medication reminders
  • Emergency notifications

🏫 Education

  • Class schedules and assignments
  • Exam results and grades
  • Parent-teacher communications
  • Event notifications

🏢 Business Services

  • Meeting reminders and updates
  • Invoice and payment notifications
  • Service completion updates
  • Client onboarding messages

🚗 Automotive

  • Service reminders and appointments
  • Delivery notifications for parts
  • Warranty and recall notices
  • Customer satisfaction surveys

🛠️ Technical Specifications

  • Built With: Python 3.8+, AsyncIO, HTTPx
  • Database: MySQL with connection pooling
  • Rate Limits: 80 messages/minute per account
  • File Size Limits: 16MB for media, 100MB for documents
  • Supported Formats: JPG, PNG, GIF, MP4, PDF, DOC, XLS, etc.
  • Response Time: < 2 seconds average
  • Uptime: 99.9% SLA

🤝 Support & Community

📚 Documentation

  • Complete API reference and examples
  • Integration tutorials for popular platforms
  • Video guides and best practices

💬 Get Help

  • GitHub issues for bug reports
  • Community Discord for discussions
  • Email support for enterprise customers
  • Live chat during business hours

🚀 Ready to automate your WhatsApp messaging?

Click "Try for free" and send your first message in under 5 minutes!