আপনি যদি নিজের একটি SMM panel চালান কিংবা রিসেলার হিসেবে অন্য কারও সার্ভিস বিক্রি করেন, তাহলে SMM panel API integration আপনার ব্যবসাকে সম্পূর্ণ অন্য মাত্রায় নিয়ে যেতে পারে। ম্যানুয়ালি প্রতিটি order বসানোর বদলে API ব্যবহার করে আপনি স্বয়ংক্রিয়ভাবে followers, likes, views ও subscribers-এর order প্লেস করতে পারেন, রিয়েল-টাইমে status চেক করতে পারেন, এবং নিজের ওয়েবসাইট, বট বা মোবাইল অ্যাপের সঙ্গে পুরো সিস্টেমকে যুক্ত করতে পারেন। এই বিস্তারিত গাইডে আমরা দেখব একটি SMM panel API আসলে কীভাবে কাজ করে এবং PHP, Python ও Node.js — এই তিনটি জনপ্রিয় ভাষায় কীভাবে ধাপে ধাপে integration করবেন, একদম প্রোডাকশন-রেডি কোড উদাহরণসহ।
SMM panel API আসলে কী?
API বা Application Programming Interface হলো এমন একটি ইন্টারফেস যার মাধ্যমে দুটি সফটওয়্যার একে অপরের সঙ্গে কথা বলে। SMM panel-এর ক্ষেত্রে API হলো এমন একটি HTTP endpoint, যেখানে আপনি নির্দিষ্ট প্যারামিটার পাঠিয়ে service তালিকা আনতে পারেন, নতুন order দিতে পারেন, order-এর অগ্রগতি জানতে পারেন এবং নিজের account balance দেখতে পারেন। ইন্ডাস্ট্রিতে বেশিরভাগ প্যানেল একটি প্রায় স্ট্যান্ডার্ড API স্ট্রাকচার অনুসরণ করে, যাকে অনেকে সাধারণভাবে perfect panel স্টাইলের API বলে চেনেন। এই সাধারণ কাঠামোর সবচেয়ে বড় সুবিধা হলো — একবার integration শিখে ফেললে, বেশিরভাগ provider-এর সঙ্গেই আপনি একই কোড সামান্য পরিবর্তন করে ব্যবহার করতে পারবেন।
PastePanel-এ তৈরি প্রতিটি white-label প্যানেল এই ইন্ডাস্ট্রি-স্ট্যান্ডার্ড API সরবরাহ করে, যাতে আপনার নিজের customer এবং reseller-রাও আপনার প্যানেলের সঙ্গে সহজে integrate করতে পারে।
Integration শুরুর আগে যা জানা দরকার
যেকোনো SMM panel API integration শুরু করার আগে তিনটি জিনিস আপনার হাতে থাকতে হবে:
- API URL (endpoint): সাধারণত এটি হয়
https://yourdomain.com/api/v2ফরম্যাটে। এখানেই সব request পাঠানো হবে। - API key: আপনার account-এর ড্যাশবোর্ড থেকে পাওয়া একটি গোপন key, যা প্রতিটি request-এ পাঠাতে হয়। এটি আপনার পরিচয় ও ব্যালেন্স যাচাইয়ের কাজ করে।
- HTTP method: প্রায় সব SMM panel API-তে request পাঠানো হয়
POSTমেথডে,application/x-www-form-urlencodedফরম্যাটে, এবং response আসে JSON আকারে।
মনে রাখবেন, API key কখনো আপনার সাইটের ফ্রন্টএন্ড JavaScript-এ রাখবেন না। এটি সবসময় সার্ভার-সাইডে (PHP, Python বা Node.js ব্যাকএন্ডে) সংরক্ষণ করুন, কারণ key ফাঁস হলে যে কেউ আপনার balance ব্যবহার করে order দিতে পারবে।
SMM panel API-র প্রধান action বা endpoints
বেশিরভাগ প্যানেলে একটিই endpoint থাকে, আর কোন কাজটি করতে চান তা নির্ধারণ হয় action প্যারামিটার দিয়ে। সবচেয়ে বেশি ব্যবহৃত action-গুলো হলো:
- services — সব service-এর তালিকা, তাদের rate, min, max এবং category ফেরত দেয়।
- add — নতুন order তৈরি করে; সঙ্গে পাঠাতে হয়
service,linkএবংquantity। Drip-feed order-এর জন্যrunsওintervalযোগ হয়, custom comments-এর জন্যcomments। - status — একটি নির্দিষ্ট order-এর অবস্থা (Pending, In progress, Completed, Partial, Canceled) ও remaining সংখ্যা জানায়।
- refill ও refill_status — drop হওয়া followers/likes আবার পূরণের অনুরোধ ও তার অবস্থা।
- cancel — উপযুক্ত ক্ষেত্রে order বাতিলের অনুরোধ।
- balance — আপনার account-এর বর্তমান balance ও currency।
এই সাধারণ action সেটটিই ইন্ডাস্ট্রিজুড়ে ব্যবহৃত হয় বলে, একটি perfect panel-ধাঁচের integration একবার লিখলে সেটি একাধিক upstream provider-এর সঙ্গেই কাজ করে।
PHP দিয়ে SMM panel API integration
PHP এখনো ওয়েব ডেভেলপমেন্টে সবচেয়ে বহুল ব্যবহৃত ভাষাগুলোর একটি, বিশেষ করে যাঁরা WordPress বা কাস্টম PHP সাইটে নিজের SMM panel-কে যুক্ত করতে চান। নিচে cURL ব্যবহার করে একটি পুনর্ব্যবহারযোগ্য ক্লাস দেওয়া হলো:
<?php
class SmmApi {
private $api_url = 'https://yourdomain.com/api/v2';
private $api_key = 'YOUR_API_KEY';
public function connect($post) {
$post['key'] = $this->api_key;
$ch = curl_init($this->api_url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($post),
CURLOPT_TIMEOUT => 30,
]);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
public function services() {
return $this->connect(['action' => 'services']);
}
public function order($data) {
return $this->connect(array_merge(['action' => 'add'], $data));
}
public function status($order_id) {
return $this->connect(['action' => 'status', 'order' => $order_id]);
}
public function balance() {
return $this->connect(['action' => 'balance']);
}
}
// ব্যবহার:
$api = new SmmApi();
$order = $api->order([
'service' => 1,
'link' => 'https://instagram.com/username',
'quantity' => 1000,
]);
print_r($order);
এখানে connect() ফাংশনটি প্রতিটি request-এ স্বয়ংক্রিয়ভাবে API key যোগ করে দেয়, তাই আপনাকে বারবার সেটি লিখতে হয় না। response সবসময় associative array আকারে ফেরত আসে, যা থেকে $order['order'] দিয়ে নতুন order ID পাবেন।
Python দিয়ে SMM panel API integration
Python বিশেষভাবে জনপ্রিয় অটোমেশন, বট এবং ব্যাকএন্ড সার্ভিসের জন্য। জনপ্রিয় requests লাইব্রেরি দিয়ে integration অত্যন্ত পরিষ্কার হয়:
import requests
class SmmApi:
def __init__(self, api_url, api_key):
self.api_url = api_url
self.api_key = api_key
def _post(self, payload):
payload["key"] = self.api_key
r = requests.post(self.api_url, data=payload, timeout=30)
r.raise_for_status()
return r.json()
def services(self):
return self._post({"action": "services"})
def add_order(self, service, link, quantity, **extra):
data = {"action": "add", "service": service,
"link": link, "quantity": quantity}
data.update(extra) # drip-feed: runs, interval
return self._post(data)
def status(self, order_id):
return self._post({"action": "status", "order": order_id})
def balance(self):
return self._post({"action": "balance"})
# ব্যবহার:
api = SmmApi("https://yourdomain.com/api/v2", "YOUR_API_KEY")
resp = api.add_order(service=1,
link="https://tiktok.com/@username",
quantity=5000,
runs=5, interval=60) # drip-feed
print(resp)
লক্ষ্য করুন, **extra ব্যবহার করে আমরা drip-feed-এর runs ও interval-এর মতো অতিরিক্ত প্যারামিটার সহজেই পাঠাতে পারছি। raise_for_status() নিশ্চিত করে যে HTTP error হলে কোড চুপচাপ ভুল করবে না, বরং exception তুলবে — যা প্রোডাকশনে খুবই দরকারি।
Node.js দিয়ে SMM panel API integration
যাঁরা JavaScript ইকোসিস্টেমে কাজ করেন, তাঁদের জন্য Node.js-এ integration সমান সহজ। নিচে axios ব্যবহার করে async/await ভিত্তিক একটি উদাহরণ:
const axios = require('axios');
class SmmApi {
constructor(apiUrl, apiKey) {
this.apiUrl = apiUrl;
this.apiKey = apiKey;
}
async _post(params) {
const body = new URLSearchParams({ ...params, key: this.apiKey });
const { data } = await axios.post(this.apiUrl, body.toString(), {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
timeout: 30000,
});
return data;
}
services() { return this._post({ action: 'services' }); }
addOrder(service, link, quantity, extra = {}) {
return this._post({ action: 'add', service, link, quantity, ...extra });
}
status(orderId) { return this._post({ action: 'status', order: orderId }); }
balance() { return this._post({ action: 'balance' }); }
}
// ব্যবহার:
(async () => {
const api = new SmmApi('https://yourdomain.com/api/v2', 'YOUR_API_KEY');
const res = await api.addOrder(1, 'https://youtube.com/watch?v=xxxx', 2000);
console.log(res);
})();
এখানে URLSearchParams স্বয়ংক্রিয়ভাবে ডেটা সঠিক form-urlencoded ফরম্যাটে রূপান্তর করে, যা প্রায় সব SMM panel API প্রত্যাশা করে। Node.js-এর non-blocking প্রকৃতির কারণে এই কোড একসঙ্গে বহু order প্রসেস করার জন্য বিশেষভাবে উপযুক্ত।
Error handling, rate limit ও নিরাপত্তা
একটি নির্ভরযোগ্য integration শুধু order পাঠানোর মধ্যেই সীমাবদ্ধ নয় — বাস্তব পরিস্থিতিতে ভুল সামলানোই সবচেয়ে গুরুত্বপূর্ণ। যে বিষয়গুলো অবশ্যই মাথায় রাখবেন:
- Response validation: প্রতিটি response-এ
errorফিল্ড আছে কি না দেখুন। "Not enough funds", "Incorrect service ID" বা "Invalid link"-এর মতো বার্তা আসতে পারে। - Rate limiting: খুব দ্রুত অসংখ্য request পাঠালে অনেক provider সাময়িকভাবে block করে দেয়। request-এর মাঝে সামান্য বিলম্ব বা একটি queue ব্যবহার করুন।
- Idempotency: একই order দুবার পাঠানো ঠেকাতে নিজের ডাটাবেসে প্রতিটি order-এর ট্র্যাক রাখুন, যাতে নেটওয়ার্ক টাইমআউটে ডাবল order না হয়।
- Timeout ও retry: সবসময় একটি timeout (৩০ সেকেন্ড) সেট করুন এবং ব্যর্থ হলে সীমিতসংখ্যক retry করুন।
- Key নিরাপত্তা: API key কখনো ক্লায়েন্ট কোডে রাখবেন না; পরিবেশ ভেরিয়েবল (environment variable) বা এনক্রিপ্টেড স্টোরেজে রাখুন। PastePanel-এ upstream provider-এর সব API key Fernet এনক্রিপশনে সুরক্ষিত থাকে।
Reseller, white-label ও provider চেইনে API-র ভূমিকা
API integration-এর আসল শক্তি বোঝা যায় যখন আপনি একটি white-label SMM panel চালান। PastePanel-এ আপনি একাধিক upstream provider যুক্ত করতে পারেন, প্রতিটির balance রিয়েল-টাইমে monitor করতে পারেন, এবং আপনার নিজের customer-দের জন্য একটি নিজস্ব API প্রকাশ করতে পারেন। ফলে আপনার reseller-রা তাদের সাইটে আপনার প্যানেলকে integrate করতে পারে — ঠিক যেভাবে আপনি একটি perfect panel-ধাঁচের upstream-এর সঙ্গে integrate করেছেন। এভাবে গোটা provider চেইনটি (customer → আপনার প্যানেল → upstream provider) সম্পূর্ণ স্বয়ংক্রিয় হয়ে যায়, এবং প্রতিটি order status ও refill নিজে থেকেই সিঙ্ক হতে থাকে।
যেহেতু এই সাধারণ কাঠামোটি প্রায় সর্বজনীন, একজন ডেভেলপার একবার perfect panel-স্টাইলের integration আয়ত্ত করলে খুব দ্রুত একাধিক উৎসের সঙ্গে কাজ করতে পারেন — এটিই এই ইন্ডাস্ট্রি-স্ট্যান্ডার্ডের সবচেয়ে বড় বাণিজ্যিক সুবিধা।
API integration ব্যবহারের মূল সুবিধাগুলো
- সম্পূর্ণ অটোমেশন: ম্যানুয়াল কাজ ছাড়াই ২৪/৭ order প্রসেসিং।
- দ্রুত ডেলিভারি: customer order দেওয়ার সঙ্গে সঙ্গেই upstream provider-এ পৌঁছে যায়।
- Scalability: Mass Orders ও একসঙ্গে হাজারো order সামলানোর ক্ষমতা।
- রিয়েল-টাইম sync: order status, refill ও cancel স্বয়ংক্রিয়ভাবে আপডেট।
- নমনীয়তা: Default, Package, Custom Comments, Subscriptions, Drip-Feed, Mentions ও Poll — সব order type API দিয়েই পরিচালনাযোগ্য।
- মাল্টি-ল্যাঙ্গুয়েজ সাপোর্ট: PHP, Python, Node.js — যেকোনো স্ট্যাকে সহজ integration।
- নিরাপত্তা: এনক্রিপ্টেড key ও সার্ভার-সাইড হ্যান্ডলিংয়ে সুরক্ষিত লেনদেন।
শুরু করুন আপনার নিজের SMM panel
একটি শক্তিশালী, দ্রুত ও নিরাপদ API-ই একটি আধুনিক SMM panel-এর মেরুদণ্ড। PastePanel (pastepanel.com) একটি সম্পূর্ণ multi-tenant white-label প্ল্যাটফর্ম, যেখানে আপনি নিজের ডোমেইন ও ব্র্যান্ডিংয়ে প্যানেল চালু করতে পারেন, একাধিক provider যুক্ত করতে পারেন, এবং PHP/Python/Node.js-এর জন্য পূর্ণাঙ্গ API সুবিধা পান। এর সঙ্গে থাকছে USDT, Binance, Payeer, Cryptomus, NOWPayments, CoinPayments, Stripe, bKash ও ABA-সহ বিশ্বব্যাপী পেমেন্ট সাপোর্ট, ৩০টি admin module এবং async Python/FastAPI-ভিত্তিক দ্রুতগতির ব্যাকএন্ড। Instagram, TikTok, YouTube, Telegram ও Facebook-এর গ্রোথ সার্ভিস বিক্রির জন্য আপনার নিজের ব্যবসা আজই শুরু করুন — PastePanel-এ সম্পূর্ণ ফ্রিতে আপনার SMM panel চালু করুন এবং এই গাইডের কোড দিয়েই প্রথম API integration করে ফেলুন।