WhatsAPI Documentation

Simple REST endpoints to check device status and obtain a QR code for linking. Keep your base URL and API key safe.

Example Request

api.php?action=status&api_key=your_api_key_here

Response (Connected)

{
  "success": true,
  "data": {
    "status": "connected",
    "phone": "97312345678",
    "name": "Mohammed Ahmed"
  }
}

Response (Not Connected)

{
  "success": true,
  "data": {
    "status": "disconnected",
    "qrcode": "qr_image.php?api_key=your_api_key_here"
  }
}

QR endpoint

qr_image.php?api_key=your_api_key_here

Returns image/png. You can embed it directly in an <img>.

Absolute

https://easy-wa.com/easy_wa_api/qr_image.php?api_key=your_api_key_here

Try it

Request URL

—

Response

—

Endpoints

GET status

Check device connection state.

api.php?action=status&api_key={api_key}
  • status: "connected" | "disconnected"
  • qrcode: present only when disconnected

GET QR image

PNG QR for linking the device. Use only when status is disconnected.

qr_image.php?api_key={api_key}
  • Content-Type: image/png
  • Caching: disabled

Send Message (GET)

Use your public API key mapped in the admin panel. These examples mirror the structure used in lifecsapi docs for easy migration.

Text (chat)

api.php?to=973XXXXXXXX&message=Hello+World!&api_key={api_key}

Image

api.php?to=973XXXXXXXX&type=image&message=https://example.com/image.jpg&caption=My+Image&api_key={api_key}

You can also use url=... instead of message=... or send base64 in file_b64.

Document

api.php?to=973XXXXXXXX&type=document&message=https://example.com/document.pdf&filename=report.pdf&caption=Monthly+Report&api_key={api_key}

Alternatively, send document=BASE64 or use url=....

Audio / Voice

api.php?to=973XXXXXXXX&type=audio&url=https://example.com/audio.mp3&api_key={api_key}

Use type=voice for voice notes. Base64 is supported via file_b64.

Video

api.php?to=973XXXXXXXX&type=video&message=https://example.com/video.mp4&caption=My+Video&api_key={api_key}

Sticker (WebP)

api.php?to=973XXXXXXXX&type=sticker&message=https://example.com/sticker.webp&api_key={api_key}

Location

api.php?to=973XXXXXXXX&type=location&lat=26.0667&lng=50.5577&address=Manama,+Bahrain&api_key={api_key}

Contact (JSON)

api.php?to=973XXXXXXXX&type=contact&contact={"name":{"formatted_name":"John Doe"},"phones":[{"phone":"97312345678","type":"CELL","wa_id":"97312345678"}]}&api_key={api_key}

Send contact payload as JSON string.

vCard

api.php?to=973XXXXXXXX&type=vcard&vcard=BEGIN:VCARD+VERSION:3.0+N:Doe;John;;;+FN:John+Doe+TEL;type=CELL;type=VOICE;waid=97312345678:+97312345678+END:VCARD&api_key={api_key}

You may include firstname=... if your client expects it; the endpoint ignores it.