বাংলা
বাংলা
Appearance
বাংলা
বাংলা
Appearance
WallaWhats REST API আপনাকে প্রোগ্রাম্যাটিকভাবে ফোন, X অ্যাকাউন্ট subscriptions এবং নোটিফিকেশন ইতিহাস পরিচালনা করতে দেয় — ঠিক যা আপনি অন্যথায় ড্যাশবোর্ড থেকে করবেন।
https://api.wallawhats.comapplication/jsonপ্রতিটি request-এ অবশ্যই x-api-key header-এ একটি API key থাকতে হবে:
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 করে একটি নতুন তৈরি করুন।
401 Unauthorized ফেরত দেয়।| প্ল্যান | অনুমোদিত keys |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 20 |
আপনার plan-এর অনুমোদিত সংখ্যার চেয়ে বেশি তৈরি করার চেষ্টা 400 সহ "error": "api key limit reached" ফেরত দেয়।
Errors একটি error field এবং HTTP status code সহ JSON হিসাবে ফেরত দেওয়া হয়:
{ "error": "phoneNumber is required" }| Status | অর্থ |
|---|---|
400 | অবৈধ parameters, quota অতিক্রান্ত, বা business-rule লঙ্ঘন |
401 | অনুপস্থিত বা অবৈধ API key |
402 | অপারেশন সম্পূর্ণ করার জন্য যথেষ্ট credits নেই |
404 | Resource পাওয়া যায়নি |
500 | Server error — exponential backoff দিয়ে পুনরায় চেষ্টা করুন |
lastKey cursor ব্যবহার করুন।403 ফেরত দিতে পারে। আপনি অপ্রত্যাশিতভাবে rate-limited হলে support-এর সাথে যোগাযোগ করুন।GET /user/profileAuthenticated ব্যবহারকারীর profile ফেরত দেয়।
Response
{
"userId": "5a4cbd70-...",
"email": "jane@example.com",
"name": "Jane",
"plan": "pro_plus",
"createdAt": 1745000000000
}উদাহরণ
curl https://api.wallawhats.com/user/profile \
-H "x-api-key: bws_prod_..."একটি ফোন হল একটি যাচাইকৃত WhatsApp নম্বর যা অ্যালার্ট পেতে পারে। একটি X অ্যাকাউন্ট subscribe করার আগে আপনাকে অবশ্যই একটি ফোন যাচাই করতে হবে।
POST /phonesএকটি 6-digit কোড তৈরি করে এবং WhatsApp-এর মাধ্যমে নম্বরে পাঠায়। ফোনটি pending_verification state-এ তৈরি করা হয়।
Request
| Field | Type | প্রয়োজনীয় | নোট |
|---|---|---|---|
phoneNumber | string | হ্যাঁ | E.164 format, যেমন +34612345678 |
displayName | string | না | ড্যাশবোর্ডে দেখানো friendly label |
Response
{ "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)উদাহরণ
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/verify6-digit কোড submit করে একটি ফোন নিশ্চিত করে। Codes 15 মিনিট পরে expire হয়।
Request
| Field | Type | প্রয়োজনীয় |
|---|---|---|
phoneNumber | string (E.164) | হ্যাঁ |
code | string (6 digits) | হ্যাঁ |
Response
{ "phoneNumber": "+34612345678", "status": "verified" }Errors
404 "phone not found"400 "invalid code" — ভুল code400 "code expired" — 15 মিনিটের বেশি পুরোনো400 "phone already verified"GET /phonesResponse
{
"phones": [
{
"phoneNumber": "+34612345678",
"status": "verified",
"displayName": "Work",
"createdAt": 1745000000000,
"verifiedAt": 1745000060000
}
],
"count": 1
}DELETE /phones/{phoneNumber}ফোনটি সরিয়ে দেয় এবং এটিকে লক্ষ্য করা যেকোনো subscriptions নিষ্ক্রিয় করে। + কে %2B হিসাবে URL-encode করুন।
Response
{ "success": true }উদাহরণ
curl -X DELETE "https://api.wallawhats.com/phones/%2B34612345678" \
-H "x-api-key: bws_prod_..."একটি subscription আপনি মনিটর করতে চান এমন একটি X অ্যাকাউন্টকে আপনার যাচাইকৃত ফোনগুলির একটির সাথে সংযুক্ত করে। যখন X অ্যাকাউন্ট পোস্ট করে, WallaWhats সেই ফোনে একটি WhatsApp অ্যালার্ট পাঠায়।
POST /subscriptionsRequest
| Field | Type | প্রয়োজনীয় | নোট |
|---|---|---|---|
xUsername | string | হ্যাঁ | 1–15 chars, alphanumeric + underscore। @ prefix গ্রহণ করা হয় এবং সরিয়ে ফেলা হয়। |
phoneNumber | string (E.164) | হ্যাঁ | অবশ্যই আপনার যাচাইকৃত ফোনগুলির একটি হতে হবে। |
Response
{
"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 |
|---|---|
| Free | 1 |
| Pro | 1 |
| Pro+ | 2 |
| Business | 5 |
| Enterprise | 50 |
GET /subscriptionsResponse
{
"subscriptions": [ /* POST /subscriptions response-এর মতো একই আকার */ ],
"count": 3
}DELETE /subscriptions/{xUsername}xUsername-এ case-insensitive match। পাঠানোর আগে @ সরিয়ে দিন।
Response
{ "success": true }WallaWhats যে প্রতিটি অ্যালার্ট delivery করে তা এখানে log করা হয়, এর WhatsApp delivery status সহ।
GET /notificationsQuery parameters
| Param | Type | বর্ণনা |
|---|---|---|
from | number (ms epoch) | এই সময়ে বা তার পরে তৈরি notifications-এ ফিল্টার করুন |
to | number (ms epoch) | এই সময়ে বা তার আগে তৈরি notifications-এ ফিল্টার করুন |
lastKey | string | পূর্ববর্তী response দ্বারা ফেরত pagination cursor |
Response
{
"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 অনুপস্থিত থাকলে, আপনি শেষে পৌঁছেছেন।
আপনার applications এই API call করতে যে keys ব্যবহার করে সেগুলি পরিচালনা করুন।
POST /apikeysRequest
| Field | Type | প্রয়োজনীয় |
|---|---|---|
name | string | না, default "Default" |
Response (201 Created)
{
"apiKey": "bws_prod_00000000000000000000000000000000",
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"expiresAt": 1776536000000
}একবার-দেখানো value
apiKey শুধুমাত্র তৈরির সময় ফেরত দেওয়া হয়। এটি অবিলম্বে আপনার secrets manager-এ store করুন। পরবর্তী calls শুধুমাত্র keyPrefix প্রকাশ করে।
GET /apikeysResponse
[
{
"keyPrefix": "bws_prod_00",
"keyName": "CI server",
"createdAt": 1745000000000,
"lastUsedAt": 1745086400000,
"expiresAt": 1776536000000
}
]DELETE /apikeys/{keyPrefix}List response থেকে 12-অক্ষরের keyPrefix ব্যবহার করুন — কখনই সম্পূর্ণ key নয়।
Response
{ "success": true }# 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 সেকেন্ডের মধ্যে ফোনে পৌঁছায়।
API প্রশ্ন, bug reports, বা quota-increase requests: আপনার ড্যাশবোর্ডের Support tab থেকে একটি ticket খুলুন, অথবা hello@support.wallawhats.com-এ ইমেল করুন।