Skip to content

API রেফারেন্স ​

WallaWhats REST API আপনাকে প্রোগ্রাম্যাটিকভাবে ফোন, X অ্যাকাউন্ট subscriptions এবং নোটিফিকেশন ইতিহাস পরিচালনা করতে দেয় — ঠিক যা আপনি অন্যথায় ড্যাশবোর্ড থেকে করবেন।

  • Base URL: https://api.wallawhats.com
  • Content type: application/json
  • Authentication: API key (header)
  • Versioning: API স্থিতিশীল। Breaking changes প্রতিটি অ্যাকাউন্টে ইমেলের মাধ্যমে 30 দিন আগে ঘোষণা করা হয়।

Authentication ​

প্রতিটি request-এ অবশ্যই x-api-key header-এ একটি API key থাকতে হবে:

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

Keys ড্যাশবোর্ডে Settings → API Keys-এর অধীনে অথবা POST /apikeys-এর মাধ্যমে তৈরি করা হয়। একটি key prefix bws_ দিয়ে শুরু হয় এবং 36 অক্ষর দীর্ঘ। Keys একবারই, তৈরির সময় দেখানো হয় — আপনি যদি একটি হারিয়ে ফেলেন, এটি delete করে একটি নতুন তৈরি করুন।

Scope এবং expiry ​

  • একটি key সেই ব্যবহারকারী হিসাবে authenticate করে যে এটি তৈরি করেছে। এর সেই ব্যবহারকারীর সমান permissions আছে এবং একই plan quotas-এর বিপরীতে গণনা করা হয়।
  • Keys 365 দিনের জন্য বৈধ। একটি নতুন key তৈরি করে, এতে switch করে এবং পুরোনোটি delete করে rotate করুন।
  • অনুপস্থিত, ভুলভাবে গঠিত বা revoked keys 401 Unauthorized ফেরত দেয়।

Keys-এর উপর Plan সীমা ​

প্ল্যানঅনুমোদিত keys
Free1
Pro1
Pro+2
Business5
Enterprise20

আপনার plan-এর অনুমোদিত সংখ্যার চেয়ে বেশি তৈরি করার চেষ্টা 400 সহ "error": "api key limit reached" ফেরত দেয়।

Errors ​

Errors একটি error field এবং HTTP status code সহ JSON হিসাবে ফেরত দেওয়া হয়:

json
{ "error": "phoneNumber is required" }
Statusঅর্থ
400অবৈধ parameters, quota অতিক্রান্ত, বা business-rule লঙ্ঘন
401অনুপস্থিত বা অবৈধ API key
402অপারেশন সম্পূর্ণ করার জন্য যথেষ্ট credits নেই
404Resource পাওয়া যায়নি
500Server error — exponential backoff দিয়ে পুনরায় চেষ্টা করুন

Rate limits ​

  • Default: প্রতি API key 20 requests/সেকেন্ড, 40 পর্যন্ত bursting।
  • List endpoints প্রতি page সর্বাধিক 50 items ফেরত দেয়; paginate করতে lastKey cursor ব্যবহার করুন।
  • WAF rules abusive patterns-এ 403 ফেরত দিতে পারে। আপনি অপ্রত্যাশিতভাবে rate-limited হলে support-এর সাথে যোগাযোগ করুন।

User ​

আপনার profile পান ​

GET /user/profile

Authenticated ব্যবহারকারীর 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 ​

একটি ফোন হল একটি যাচাইকৃত WhatsApp নম্বর যা অ্যালার্ট পেতে পারে। একটি X অ্যাকাউন্ট subscribe করার আগে আপনাকে অবশ্যই একটি ফোন যাচাই করতে হবে।

একটি ফোন register করুন ​

POST /phones

একটি 6-digit কোড তৈরি করে এবং WhatsApp-এর মাধ্যমে নম্বরে পাঠায়। ফোনটি pending_verification state-এ তৈরি করা হয়।

Request

FieldTypeপ্রয়োজনীয়নোট
phoneNumberstringহ্যাঁE.164 format, যেমন +34612345678
displayNamestringনাড্যাশবোর্ডে দেখানো friendly label

Response

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

Errors

  • 400 "invalid phone number format" — E.164 নয়
  • 400 "phone number limit reached" — plan allowance অতিক্রান্ত (Free/Pro 1, Pro+ 2, 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": "+34612345678", "displayName": "Work"}'

একটি ফোন যাচাই করুন ​

POST /phones/verify

6-digit কোড submit করে একটি ফোন নিশ্চিত করে। Codes 15 মিনিট পরে expire হয়।

Request

FieldTypeপ্রয়োজনীয়
phoneNumberstring (E.164)হ্যাঁ
codestring (6 digits)হ্যাঁ

Response

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

Errors

  • 404 "phone not found"
  • 400 "invalid code" — ভুল code
  • 400 "code expired" — 15 মিনিটের বেশি পুরোনো
  • 400 "phone already verified"

আপনার ফোনগুলি list করুন ​

GET /phones

Response

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

একটি ফোন delete করুন ​

DELETE /phones/{phoneNumber}

ফোনটি সরিয়ে দেয় এবং এটিকে লক্ষ্য করা যেকোনো subscriptions নিষ্ক্রিয় করে। + কে %2B হিসাবে URL-encode করুন।

Response

json
{ "success": true }

উদাহরণ

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

Subscriptions ​

একটি subscription আপনি মনিটর করতে চান এমন একটি X অ্যাকাউন্টকে আপনার যাচাইকৃত ফোনগুলির একটির সাথে সংযুক্ত করে। যখন X অ্যাকাউন্ট পোস্ট করে, WallaWhats সেই ফোনে একটি WhatsApp অ্যালার্ট পাঠায়।

একটি subscription তৈরি করুন ​

POST /subscriptions

Request

FieldTypeপ্রয়োজনীয়নোট
xUsernamestringহ্যাঁ1–15 chars, alphanumeric + underscore। @ prefix গ্রহণ করা হয় এবং সরিয়ে ফেলা হয়।
phoneNumberstring (E.164)হ্যাঁঅবশ্যই আপনার যাচাইকৃত ফোনগুলির একটি হতে হবে।

Response

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

Errors

  • 400 "invalid X username format" — regex ব্যর্থ
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — নিচের plan table দেখুন
  • 404 "X account not found" — username X-এ resolve হয় না

Plan সীমা

প্ল্যানSubscriptions
Free1
Pro1
Pro+2
Business5
Enterprise50

আপনার subscriptions list করুন ​

GET /subscriptions

Response

json
{
  "subscriptions": [ /* POST /subscriptions response-এর মতো একই আকার */ ],
  "count": 3
}

একটি subscription delete করুন ​

DELETE /subscriptions/{xUsername}

xUsername-এ case-insensitive match। পাঠানোর আগে @ সরিয়ে দিন।

Response

json
{ "success": true }

Notifications ​

WallaWhats যে প্রতিটি অ্যালার্ট delivery করে তা এখানে log করা হয়, এর WhatsApp delivery status সহ।

Notifications list করুন ​

GET /notifications

Query parameters

ParamTypeবর্ণনা
fromnumber (ms epoch)এই সময়ে বা তার পরে তৈরি notifications-এ ফিল্টার করুন
tonumber (ms epoch)এই সময়ে বা তার আগে তৈরি notifications-এ ফিল্টার করুন
lastKeystringপূর্ববর্তী response দ্বারা ফেরত pagination cursor

Response

json
{
  "notifications": [
    {
      "notificationId": "a1b2c3d4-...",
      "userId": "5a4cbd70-...",
      "phoneNumber": "+34612345678",
      "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 values: queued, sent, delivered, read, failed।

Page size 50। lastKey অনুপস্থিত থাকলে, আপনি শেষে পৌঁছেছেন।


API keys ​

আপনার applications এই API call করতে যে keys ব্যবহার করে সেগুলি পরিচালনা করুন।

একটি API key তৈরি করুন ​

POST /apikeys

Request

FieldTypeপ্রয়োজনীয়
namestringনা, default "Default"

Response (201 Created)

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

একবার-দেখানো value

apiKey শুধুমাত্র তৈরির সময় ফেরত দেওয়া হয়। এটি অবিলম্বে আপনার secrets manager-এ store করুন। পরবর্তী calls শুধুমাত্র keyPrefix প্রকাশ করে।

আপনার API keys list করুন ​

GET /apikeys

Response

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

একটি API key delete করুন ​

DELETE /apikeys/{keyPrefix}

List response থেকে 12-অক্ষরের keyPrefix ব্যবহার করুন — কখনই সম্পূর্ণ key নয়।

Response

json
{ "success": true }

Quickstart ​

bash
# 1. ড্যাশবোর্ডে একটি key তৈরি করুন এবং export করুন
export WALLA_API_KEY="bws_prod_..."

# 2. আপনার WhatsApp নম্বর register + যাচাই করুন
curl -X POST https://api.wallawhats.com/phones \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber":"+34612345678","displayName":"Mobile"}'
# -> ফোনটি একটি WhatsApp code পায়। এটি submit করুন:
curl -X POST https://api.wallawhats.com/phones/verify \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber":"+34612345678","code":"123456"}'

# 3. একটি X অ্যাকাউন্টে subscribe করুন
curl -X POST https://api.wallawhats.com/subscriptions \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"xUsername":"elonmusk","phoneNumber":"+34612345678"}'

# 4. অ্যালার্ট আসতে দেখুন
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

এটুকুই — একবার X অ্যাকাউন্ট পোস্ট করলে, অ্যালার্ট ~10 সেকেন্ডের মধ্যে ফোনে পৌঁছায়।

Support ​

API প্রশ্ন, bug reports, বা quota-increase requests: আপনার ড্যাশবোর্ডের Support tab থেকে একটি ticket খুলুন, অথবা hello@support.wallawhats.com-এ ইমেল করুন।

WallaWhats Documentation