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/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": "+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