Skip to content

การอ้างอิง API

REST API ของ WallaWhats ช่วยให้คุณจัดการโทรศัพท์ การสมัครสมาชิกบัญชี X และประวัติการแจ้งเตือนผ่านโปรแกรม — ทำสิ่งเดียวกับที่คุณจะทำจากแดชบอร์ด

  • Base URL: https://api.wallawhats.com
  • Content type: application/json
  • การยืนยันตัวตน: API key (header)
  • การกำหนดเวอร์ชัน: API มีเสถียรภาพ การเปลี่ยนแปลงที่กระทบกันจะมีการประกาศล่วงหน้า 30 วันผ่านอีเมลถึงทุกบัญชี

การยืนยันตัวตน

ทุกคำขอต้องมี API key ในส่วนหัว x-api-key:

bash
curl https://api.wallawhats.com/user/profile \
  -H "x-api-key: bws_prod_00000000000000000000000000000000"

Key ถูกสร้างในแดชบอร์ดภายใต้ Settings → API Keys หรือผ่าน POST /apikeys คำนำหน้า key ขึ้นต้นด้วย bws_ และมีความยาว 36 ตัวอักษร Key จะแสดงเพียงครั้งเดียวตอนสร้าง — หากคุณทำหาย ให้ลบแล้วสร้างใหม่

ขอบเขตและวันหมดอายุ

  • Key ยืนยันตัวตนในฐานะผู้ใช้ที่สร้างขึ้น มีสิทธิ์เหมือนผู้ใช้นั้นและนับเข้าสู่โควตาแผนเดียวกัน
  • Key มีผลใช้งาน 365 วัน หมุนเวียนโดยการสร้าง key ใหม่ สลับไป และลบของเก่า
  • Key ที่หายไป มีรูปแบบไม่ถูกต้อง หรือถูกเพิกถอนจะส่งกลับ 401 Unauthorized

ขีดจำกัดแผนสำหรับ key

แผนKey ที่อนุญาต
Free1
Pro1
Pro+2
Business5
Enterprise20

การพยายามสร้างมากกว่าที่แผนของคุณอนุญาตจะส่งกลับ 400 พร้อม "error": "api key limit reached"

ข้อผิดพลาด

ข้อผิดพลาดจะถูกส่งกลับเป็น JSON พร้อมฟิลด์ error และรหัสสถานะ HTTP:

json
{ "error": "phoneNumber is required" }
สถานะความหมาย
400พารามิเตอร์ไม่ถูกต้อง เกินโควตา หรือละเมิดกฎทางธุรกิจ
401API key ขาดหายหรือไม่ถูกต้อง
402เครดิตไม่เพียงพอที่จะดำเนินการให้เสร็จ
404ไม่พบทรัพยากร
500ข้อผิดพลาดของเซิร์ฟเวอร์ — กรุณาลองใหม่ด้วย exponential backoff

ขีดจำกัดอัตรา

  • ค่าเริ่มต้น: 20 คำขอ/วินาทีต่อ API key สูงสุด 40
  • Endpoint แบบ list ส่งกลับสูงสุด 50 รายการต่อหน้า; ใช้เคอร์เซอร์ lastKey เพื่อแบ่งหน้า
  • กฎ WAF อาจส่งกลับ 403 ในรูปแบบที่ใช้ผิดทาง ติดต่อฝ่ายสนับสนุนหากคุณถูกจำกัดอัตราโดยไม่คาดคิด

User

รับโปรไฟล์ของคุณ

GET /user/profile

ส่งกลับโปรไฟล์ของผู้ใช้ที่ผ่านการยืนยัน

Response

json
{
  "userId": "5a4cbd70-...",
  "email": "jane@example.com",
  "name": "Jane",
  "plan": "pro_plus",
  "createdAt": 1745000000000
}

ตัวอย่าง

bash
curl https://api.wallawhats.com/user/profile \
  -H "x-api-key: bws_prod_..."

Phones

phone คือหมายเลข WhatsApp ที่ยืนยันแล้วซึ่งสามารถรับการแจ้งเตือน คุณต้องยืนยัน phone ก่อนที่จะสมัครสมาชิกบัญชี X ให้กับมัน

ลงทะเบียน phone

POST /phones

สร้างรหัส 6 หลักและส่งไปยังหมายเลขผ่าน WhatsApp phone ถูกสร้างในสถานะ pending_verification

Request

FieldTypeRequiredหมายเหตุ
phoneNumberstringใช่รูปแบบ E.164 เช่น +66812345678
displayNamestringไม่ป้ายชื่อที่เป็นมิตรแสดงในแดชบอร์ด

Response

json
{ "phoneNumber": "+66812345678", "status": "pending_verification" }

ข้อผิดพลาด

  • 400 "invalid phone number format" — ไม่ใช่ E.164
  • 400 "phone number limit reached" — เกินขีดจำกัดของแผน (Free/Pro/Pro+ 1, Business 3, Enterprise 10)

ตัวอย่าง

bash
curl -X POST https://api.wallawhats.com/phones \
  -H "x-api-key: bws_prod_..." \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber": "+66812345678", "displayName": "Work"}'

ยืนยัน phone

POST /phones/verify

ยืนยัน phone โดยส่งรหัส 6 หลัก รหัสหมดอายุหลังจาก 15 นาที

Request

FieldTypeRequired
phoneNumberstring (E.164)ใช่
codestring (6 หลัก)ใช่

Response

json
{ "phoneNumber": "+66812345678", "status": "verified" }

ข้อผิดพลาด

  • 404 "phone not found"
  • 400 "invalid code" — รหัสผิด
  • 400 "code expired" — เกิน 15 นาที
  • 400 "phone already verified"

แสดงรายการ phone ของคุณ

GET /phones

Response

json
{
  "phones": [
    {
      "phoneNumber": "+66812345678",
      "status": "verified",
      "displayName": "Work",
      "createdAt": 1745000000000,
      "verifiedAt": 1745000060000
    }
  ],
  "count": 1
}

ลบ phone

DELETE /phones/{phoneNumber}

ลบ phone และปิดการใช้งานการสมัครสมาชิกใด ๆ ที่มุ่งเป้าไปที่มัน URL-encode + เป็น %2B

Response

json
{ "success": true }

ตัวอย่าง

bash
curl -X DELETE "https://api.wallawhats.com/phones/%2B66812345678" \
  -H "x-api-key: bws_prod_..."

Subscriptions

subscription ผูกบัญชี X ที่คุณต้องการติดตามเข้ากับ phone ที่ยืนยันแล้วตัวหนึ่งของคุณ เมื่อบัญชี X โพสต์ WallaWhats จะส่งการแจ้งเตือน WhatsApp ไปยัง phone นั้น

สร้าง subscription

POST /subscriptions

Request

FieldTypeRequiredหมายเหตุ
xUsernamestringใช่1–15 ตัวอักษร ตัวอักษรและตัวเลข + ขีดล่าง คำนำหน้า @ ได้รับการยอมรับและถูกตัดออก
phoneNumberstring (E.164)ใช่ต้องเป็นหนึ่งใน phone ที่ยืนยันแล้วของคุณ

Response

json
{
  "xUsername": "elonmusk",
  "xUserId": "44196397",
  "xDisplayName": "Elon Musk",
  "xProfileImage": "https://pbs.twimg.com/...",
  "phoneNumber": "+66812345678",
  "isActive": true,
  "createdAt": 1745000000000
}

ข้อผิดพลาด

  • 400 "invalid X username format" — regex ล้มเหลว
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — ดูตารางแผนด้านล่าง
  • 404 "X account not found" — ไม่พบชื่อผู้ใช้บน X

ขีดจำกัดแผน

แผนSubscriptions
Free1
Pro1
Pro+2
Business5
Enterprise50

แสดงรายการ subscription ของคุณ

GET /subscriptions

Response

json
{
  "subscriptions": [ /* รูปร่างเดียวกันกับ response ของ POST /subscriptions */ ],
  "count": 3
}

ลบ subscription

DELETE /subscriptions/{xUsername}

การจับคู่ที่ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็กบน xUsername ตัด @ ออกก่อนส่ง

Response

json
{ "success": true }

Notifications

การแจ้งเตือนทุกรายการที่ WallaWhats ส่งจะถูกบันทึกที่นี่ พร้อมกับสถานะการจัดส่ง WhatsApp

แสดงรายการการแจ้งเตือน

GET /notifications

พารามิเตอร์ query

ParamTypeรายละเอียด
fromnumber (ms epoch)กรองการแจ้งเตือนที่สร้างในหรือหลังเวลานี้
tonumber (ms epoch)กรองการแจ้งเตือนที่สร้างในหรือก่อนเวลานี้
lastKeystringเคอร์เซอร์การแบ่งหน้าที่ส่งกลับโดย response ก่อนหน้า

Response

json
{
  "notifications": [
    {
      "notificationId": "a1b2c3d4-...",
      "userId": "5a4cbd70-...",
      "phoneNumber": "+66812345678",
      "xUsername": "elonmusk",
      "tweetId": "1797123456789000000",
      "tweetText": "...",
      "tweetUrl": "https://x.com/elonmusk/status/...",
      "waMessageId": "wamid.HBgN...",
      "status": "delivered",
      "errorMessage": null,
      "createdAt": 1745000000000,
      "updatedAt": 1745000002000
    }
  ],
  "lastKey": "eyJOT1RJRklDQVRJT05fSUQi..."
}

ค่า status ที่เป็นไปได้: queued, sent, delivered, read, failed

ขนาดหน้าคือ 50 เมื่อ lastKey ไม่มี แสดงว่าคุณถึงจุดสิ้นสุด


API keys

จัดการ key ที่แอปพลิเคชันของคุณใช้เพื่อเรียก API นี้

สร้าง API key

POST /apikeys

Request

FieldTypeRequired
namestringไม่ ค่าเริ่มต้นเป็น "Default"

Response (201 Created)

json
{
  "apiKey": "bws_prod_00000000000000000000000000000000",
  "keyPrefix": "bws_prod_00",
  "keyName": "CI server",
  "createdAt": 1745000000000,
  "expiresAt": 1776536000000
}

ค่าที่แสดงครั้งเดียว

apiKey ถูกส่งกลับเฉพาะตอนสร้าง เท่านั้น บันทึกลงใน secrets manager ของคุณทันที การเรียกครั้งต่อไปจะเปิดเผยเฉพาะ keyPrefix เท่านั้น

แสดงรายการ API key ของคุณ

GET /apikeys

Response

json
[
  {
    "keyPrefix": "bws_prod_00",
    "keyName": "CI server",
    "createdAt": 1745000000000,
    "lastUsedAt": 1745086400000,
    "expiresAt": 1776536000000
  }
]

ลบ API key

DELETE /apikeys/{keyPrefix}

ใช้ keyPrefix 12 ตัวอักษรจาก response ของ list — ห้ามใช้ key เต็ม

Response

json
{ "success": true }

Quickstart

bash
# 1. สร้าง key ในแดชบอร์ดและส่งออก
export WALLA_API_KEY="bws_prod_..."

# 2. ลงทะเบียน + ยืนยันหมายเลข WhatsApp ของคุณ
curl -X POST https://api.wallawhats.com/phones \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber":"+66812345678","displayName":"Mobile"}'
# -> โทรศัพท์ได้รับรหัส WhatsApp ส่งมัน:
curl -X POST https://api.wallawhats.com/phones/verify \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber":"+66812345678","code":"123456"}'

# 3. สมัครสมาชิกบัญชี X
curl -X POST https://api.wallawhats.com/subscriptions \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"xUsername":"elonmusk","phoneNumber":"+66812345678"}'

# 4. ดูการแจ้งเตือนทยอยเข้ามา
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

เท่านี้เอง — เมื่อบัญชี X โพสต์ การแจ้งเตือนจะไปถึงโทรศัพท์ภายในเวลาประมาณ 10 วินาที

การสนับสนุน

คำถามเกี่ยวกับ API รายงานบั๊ก หรือคำขอเพิ่มโควตา: เปิดตั๋วจากแท็บ Support ในแดชบอร์ดของคุณ หรือส่งอีเมลถึง hello@support.wallawhats.com

WallaWhats Documentation