PastePanel
All articles
Article 11 min read

SMM Panel API Entegrasyonu Rehberi (PHP, Python, Node.js)

P

PastePanel Team

Insights for panel operators

SMM panel API entegrasyonu, kendi SMM panel işinizi ölçeklendirmek isteyen her geliştirici ve panel sahibi için olmazsa olmaz bir beceridir. Bir SMM panel; Instagram, TikTok, YouTube, Telegram ve Facebook gibi platformlar için followers, likes, views ve subscribers hizmetlerini satan bir e-ticaret sistemidir. Ancak bu hizmetleri manuel olarak yönetmek belli bir sipariş hacminden sonra imkânsız hale gelir. İşte tam bu noktada API devreye girer: siparişleri otomatik oluşturmak, durum sorgulamak, bakiye kontrol etmek ve provider'lardan hizmet çekmek için makineden makineye bir köprü kurarsınız.

Bu rehberde, sektörde fiilen standart haline gelmiş SMM panel API v2 yapısını baştan sona ele alacağız. Piyasadaki birçok panel çözümü, geliştiricilerin aşina olduğu ortak bir istek/yanıt formatını paylaşır; bu ortak dile "perfect panel" tarzı API de denir ve neredeyse tüm modern paneller bu mantıkla çalışır. Yani bir kez öğrendiğinizde, farklı panellere bağlanan entegrasyonlarınızı çok küçük değişikliklerle yeniden kullanabilirsiniz.

Aşağıda hem teorik yapıyı hem de PHP, Python ve Node.js ile çalışan gerçek kod örneklerini bulacaksınız. Amacımız, bu yazıyı okuduktan sonra kendi web sitenizi, reseller bot'unuzu ya da otomasyon script'inizi bir SMM panel'e sorunsuzca bağlayabilmenizdir. PastePanel gibi async Python/FastAPI tabanlı modern bir altyapı üzerinde bu entegrasyonun neden çok daha hızlı ve güvenli olduğuna da değineceğiz.

SMM Panel API Entegrasyonu Nedir ve Neden Gereklidir?

SMM panel API entegrasyonu, sizin uygulamanız (bir web sitesi, mobil uygulama, Telegram bot'u veya arka plan servisi) ile panel arasında programatik bir bağlantı kurma işlemidir. Kullanıcı arayüzünden tıklayarak yaptığınız her işlem (hizmet listeleme, sipariş verme, durum kontrolü), API üzerinden tek bir HTTP isteğine dönüşür. Bu sayede saatte binlerce siparişi insan müdahalesi olmadan işleyebilirsiniz.

Entegrasyona ihtiyaç duyduğunuz tipik senaryolar şunlardır:

  • Kendi mağazanız: Kendi tasarladığınız web sitesinde müşteri sipariş verdiğinde, arka planda API ile panele otomatik sipariş düşürürsünüz.
  • Reseller modeli: Bir reseller olarak başka bir panelin hizmetlerini kendi fiyatınızla yeniden satarsınız; provider panelinden API ile fiyat ve stok çekersiniz.
  • Otomasyon ve senkronizasyon: Yüzlerce hizmetin fiyatını, açıklamasını ve durumunu düzenli aralıklarla API üzerinden güncel tutarsınız.
  • Bot ve entegrasyonlar: Telegram bot'u, Discord bot'u veya CRM sisteminizden doğrudan sipariş oluşturursunuz.

SMM Panel API v2 Standardını Anlamak

Neredeyse tüm modern paneller tek bir endpoint üzerinden çalışır: genellikle https://siteniz.com/api/v2 adresine POST yöntemiyle istek gönderirsiniz. Kimlik doğrulama için her istekte bir key (API anahtarı) parametresi yollarsınız ve yapmak istediğiniz işlemi action parametresiyle belirtirsiniz. Yanıtlar JSON formatında döner.

Bu ortak "perfect panel" formatındaki temel action'lar şunlardır:

  • services: Paneldeki tüm hizmetlerin listesini döndürür (servis ID, isim, tür, fiyat, min/max miktar, drip-feed ve refill destekleri).
  • add: Yeni bir sipariş oluşturur. Sipariş türüne göre service, link, quantity gibi parametreler alır.
  • status: Tek bir siparişin durumunu sorgular (order parametresiyle).
  • orders / multiStatus: Birden fazla siparişin durumunu toplu sorgular.
  • balance: Hesabınızın güncel bakiyesini ve para birimini döndürür.
  • refill: Düşen followers/subscribers için yenileme (telafi) talebi başlatır.
  • cancel: Uygun siparişlerde iptal talebi oluşturur.

Sipariş türü de bu standartta önemlidir. Default sipariş dışında Package, Custom Comments, Subscriptions, Drip-Feed, Mentions ve Poll gibi türler farklı parametre setleri ister. Örneğin drip-feed siparişlerde runs ve interval parametrelerini de eklemeniz gerekir; böylece toplam miktar belirli aralıklarla parça parça teslim edilir ve daha doğal bir büyüme sağlanır.

Tipik Bir Sipariş Yanıtı

Başarılı bir add isteğinde tipik yanıt şu şekildedir:

{
  "order": 23501
}

Durum sorgusunda ise şu alanları görürsünüz:

{
  "charge": "0.90",
  "start_count": "1240",
  "status": "In progress",
  "remains": "320",
  "currency": "USD"
}

Statü değerleri genellikle şunlardır: Pending, In progress, Processing, Completed, Partial ve Canceled. Entegrasyonunuz bu değerleri kendi sistemindeki durumlara eşlemeli; özellikle Partial (kısmi teslim) ve Canceled durumlarında müşteriye bakiye iadesi mantığını doğru kurmalısınız.

Başlamadan Önce: API Anahtarı, Endpoint ve Kimlik Doğrulama

Herhangi bir kod yazmadan önce üç bilgiye ihtiyacınız var: API endpoint adresi, kişisel API anahtarınız ve kullanacağınız servislerin ID'leri. API anahtarınızı genellikle panel hesabınızdaki hesap veya API sayfasından alırsınız. Bu anahtar bir parola gibidir; kim bu anahtara sahipse sizin bakiyeniz üzerinden sipariş verebilir. Bu yüzden anahtarı asla frontend JavaScript'inde, mobil uygulama paketinde veya herkese açık bir repository'de saklamayın. Her zaman sunucu tarafında, ortam değişkeni (environment variable) olarak tutun.

Profesyonel panellerde API anahtarları veri tabanında düz metin olarak değil, Fernet gibi simetrik şifreleme ile korunur. PastePanel'de upstream provider anahtarları da Fernet ile şifrelenerek saklanır; böylece veri tabanı bir şekilde açığa çıksa bile anahtarlar okunamaz. Kendi entegrasyonunuzda da aynı disiplini benimseyin: sırları koddan ayrı tutun.

PHP ile SMM Panel API Entegrasyonu

PHP, paylaşımlı hosting'lerde en yaygın dil olduğu için birçok panel sahibinin ilk tercihidir. Aşağıdaki örnek, cURL kullanarak esnek ve yeniden kullanılabilir bir istek fonksiyonu kurar. Hata yönetimini de içerdiğine dikkat edin.

<?php
$api_url = "https://siteniz.pastepanel.com/api/v2";
$api_key = getenv("SMM_API_KEY"); // Ortam degiskeninden okuyun

function smmRequest(array $post) {
    global $api_url, $api_key;
    $post["key"] = $api_key;

    $ch = curl_init($api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

    $response = curl_exec($ch);
    if (curl_errno($ch)) {
        throw new Exception("cURL hatasi: " . curl_error($ch));
    }
    curl_close($ch);

    $data = json_decode($response, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        throw new Exception("Gecersiz JSON yaniti: " . $response);
    }
    return $data;
}

// 1) Bakiye kontrolu
$balance = smmRequest(["action" => "balance"]);
echo "Bakiye: " . $balance["balance"] . " " . $balance["currency"] . PHP_EOL;

// 2) Yeni siparis olusturma
$order = smmRequest([
    "action"   => "add",
    "service"  => 1,
    "link"     => "https://instagram.com/kullaniciadi",
    "quantity" => 1000
]);

if (isset($order["order"])) {
    echo "Siparis olusturuldu, ID: " . $order["order"] . PHP_EOL;
} else {
    echo "Hata: " . ($order["error"] ?? "bilinmeyen") . PHP_EOL;
}

Bu yapı sayesinde action değerini değiştirerek services, status, refill veya cancel çağrılarını aynı fonksiyonla yapabilirsiniz. Üretim ortamında bu fonksiyonu bir sınıf içine alıp, her siparişi kendi veri tabanınıza da kaydetmeniz önerilir; böylece panel ID'si ile kendi sipariş ID'niz arasında güvenilir bir eşleşme tutarsınız.

Python ile SMM Panel API Entegrasyonu

Python, otomasyon ve arka plan işleri için son derece uygundur. Aşağıdaki örnek, requests kütüphanesiyle temiz bir istemci sınıfı sunar. Bu nesne yönelimli yaklaşım, kodunuzu okunabilir ve test edilebilir tutar.

import os
import requests

class SmmPanel:
    def __init__(self, api_url, api_key):
        self.api_url = api_url
        self.api_key = api_key
        self.session = requests.Session()

    def _post(self, payload):
        payload["key"] = self.api_key
        resp = self.session.post(self.api_url, data=payload, timeout=30)
        resp.raise_for_status()
        return resp.json()

    def services(self):
        return self._post({"action": "services"})

    def balance(self):
        return self._post({"action": "balance"})

    def add_order(self, service, link, quantity, **extra):
        payload = {
            "action": "add",
            "service": service,
            "link": link,
            "quantity": quantity,
        }
        payload.update(extra)  # drip-feed icin runs/interval eklenebilir
        return self._post(payload)

    def status(self, order_id):
        return self._post({"action": "status", "order": order_id})

    def refill(self, order_id):
        return self._post({"action": "refill", "order": order_id})


panel = SmmPanel(
    api_url="https://siteniz.pastepanel.com/api/v2",
    api_key=os.environ["SMM_API_KEY"],
)

# Drip-feed siparis ornegi: 5000 adet, 5 parti, 60 dakika arayla
result = panel.add_order(
    service=1,
    link="https://instagram.com/kullaniciadi",
    quantity=5000,
    runs=5,
    interval=60,
)
print(result)

Session nesnesi kullanmak, arka arkaya çok sayıda istek attığınızda bağlantıyı yeniden kullanarak performansı ciddi biçimde artırır. Toplu (mass) sipariş işlerken bu fark bariz şekilde hissedilir. Python tarafında ayrıca tenacity gibi bir kütüphaneyle otomatik yeniden deneme (retry) mantığı ekleyerek geçici ağ hatalarına karşı dayanıklılık kazandırabilirsiniz.

Node.js ile SMM Panel API Entegrasyonu

Node.js, gerçek zamanlı uygulamalar ve modern web backend'leri için popüler bir seçimdir. Aşağıdaki örnek yalnızca yerleşik fetch API'sini kullanır (Node 18 ve üzeri), böylece harici bağımlılık gerekmez. Async/await yapısı sayesinde kod hem okunaklı hem de yüksek eşzamanlılığa uygundur.

const API_URL = "https://siteniz.pastepanel.com/api/v2";
const API_KEY = process.env.SMM_API_KEY;

async function smmRequest(params) {
  const body = new URLSearchParams({ key: API_KEY, ...params });

  const res = await fetch(API_URL, {
    method: "POST",
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    body: body.toString(),
    signal: AbortSignal.timeout(30000),
  });

  if (!res.ok) {
    throw new Error("HTTP hatasi: " + res.status);
  }
  return res.json();
}

async function main() {
  try {
    // Hizmet listesini cek
    const services = await smmRequest({ action: "services" });
    console.log("Toplam hizmet:", services.length);

    // Siparis olustur
    const order = await smmRequest({
      action: "add",
      service: 1,
      link: "https://tiktok.com/@kullaniciadi",
      quantity: 2000,
    });

    if (order.order) {
      console.log("Siparis ID:", order.order);
    } else {
      console.error("Siparis hatasi:", order.error);
    }
  } catch (err) {
    console.error("API cagrisi basarisiz:", err.message);
  }
}

main();

Express veya Fastify tabanlı bir web servisinde bu fonksiyonu bir servis katmanına yerleştirin ve API anahtarını asla istemci tarafına göndermeyin. Müşteri tarayıcısı yalnızca sizin kendi backend'inizle konuşmalı; panele giden gerçek istek her zaman sunucunuzdan çıkmalıdır.

Sipariş Durumu, Refill ve Cancel İşlemlerini Yönetmek

Sipariş oluşturmak sürecin yalnızca başlangıcıdır. Sağlam bir entegrasyon, siparişin yaşam döngüsünü sonuna kadar takip eder. Pratik bir yaklaşım şudur: her yeni sipariş için panelden dönen ID'yi veri tabanınıza kaydedin, ardından belirli aralıklarla (örneğin 1-5 dakikada bir) bir arka plan işiyle status sorgusu yapın. Statü Completed olduğunda müşteriye bildirim gönderin; Partial olduğunda teslim edilmeyen kısmın bedelini iade edin; Canceled olduğunda ise tam iade uygulayın.

Followers ve subscribers gibi düşme (drop) yaşanabilen hizmetlerde refill son derece değerlidir. Müşteri sayının düştüğünü fark ettiğinde tek tıkla yenileme talebi başlatabilmeli, sizin sisteminiz de bu talebi API üzerinden panele iletmelidir. Benzer şekilde, henüz başlamamış siparişlerde cancel action'ı ile iptal ve iade akışı kurmak müşteri memnuniyetini doğrudan artırır. Bu iki özellik, birçok "perfect panel" tarzı çözümde standart olarak sunulur ve profesyonel bir panelin olmazsa olmazıdır.

Toplu sorgularda tek tek istek atmak yerine orders veya multiStatus action'ını kullanarak birden fazla sipariş ID'sini virgülle ayırıp tek istekte durum çekin. Bu, rate limit'e takılmadan çok sayıda siparişi verimli izlemenizi sağlar.

Güvenlik, Hata Yönetimi ve En İyi Uygulamalar

Para hareketiyle ilgili her sistemde güvenlik ve dayanıklılık pazarlık konusu değildir. API entegrasyonunuzda aşağıdaki ilkeleri mutlaka uygulayın:

  • Anahtarları koddan ayırın: API anahtarını ortam değişkeninde veya şifreli bir sır yöneticisinde tutun; asla repository'ye veya frontend'e koymayın.
  • Her zaman sunucu tarafından çağırın: Panele giden istekler yalnızca kendi backend'inizden çıkmalı; böylece anahtar gizli kalır ve iş mantığını kontrol edersiniz.
  • Idempotency (tekrarsızlık) kurun: Ağ hatası nedeniyle aynı isteği iki kez göndermeniz mümkündür. Kendi tarafınızda benzersiz bir sipariş anahtarı tutarak çift sipariş ve çift ödeme riskini ortadan kaldırın.
  • Timeout ve retry belirleyin: Her isteğe makul bir zaman aşımı verin ve yalnızca güvenli (idempotent) işlemlerde otomatik yeniden deneme uygulayın.
  • Yanıtları doğrulayın: JSON'un beklediğiniz alanları içerip içermediğini kontrol edin; error alanı geldiğinde bunu kendi hata akışınıza işleyin.
  • Rate limit'e saygı gösterin: Panelin izin verdiği istek hızını aşmayın; toplu işlerde istekleri sıraya alın veya küçük gecikmelerle dağıtın.
  • Bakiyeyi izleyin: Reseller olarak upstream provider bakiyeniz bittiğinde siparişler sessizce başarısız olabilir. Düzenli balance kontrolü ve düşük bakiye uyarısı kurun.

Loglama da kritiktir. Gönderdiğiniz her istek ve aldığınız her yanıt (anahtarı maskeleyerek) kaydedilmelidir. Bir uyuşmazlık yaşandığında bu loglar, siparişin gerçekten panele ulaşıp ulaşmadığını kanıtlamanızı sağlar.

PastePanel'in API Altyapısı Neden Öne Çıkıyor?

PastePanel, kendi markalı SMM panel işinizi kurmanız için tasarlanmış multi-tenant ve white-label bir SaaS platformudur. API tarafında ise sektörün alışkın olduğu v2 formatını korurken modern bir mimari sunar. Sistem async Python/FastAPI üzerine kuruludur; bu da yüksek eşzamanlı sipariş yükünü düşük gecikmeyle karşılaması anlamına gelir. Piyasadaki klasik "perfect panel" formatına aşina geliştiriciler, mevcut PHP, Python veya Node.js kodlarını neredeyse hiç değiştirmeden PastePanel'e bağlayabilir.

Platform, tek bir upstream provider'a bağımlı kalmanızı istemez: birden fazla provider tanımlayabilir, her birinin API anahtarını Fernet ile şifreli saklayabilir ve bakiyelerini merkezî olarak izleyebilirsiniz. 30'dan fazla admin modülü, Default, Package, Custom Comments, Subscriptions, Drip-Feed, Mentions ve Poll gibi sipariş türlerini, ayrıca Mass Orders, Refill ve Cancel akışlarını API üzerinden yönetmenizi sağlar. Ödeme tarafında ise USDT, Binance, Payeer, Cryptomus, NOWPayments, CoinPayments, Stripe, bKash, ABA ve manuel yöntemlerle dünya çapında tahsilat yapabilirsiniz. Böylece hem müşteri panelinizi hem de tam kapsamlı API'nizi tek bir güvenli çatı altında çalıştırırsınız.

SMM Panel API Entegrasyonunun Avantajları

  • Tam otomasyon: Siparişler 7/24 insan müdahalesi olmadan işlenir; ölçeklenmek için ekip büyütmeniz gerekmez.
  • Çoklu dil desteği: PHP, Python ve Node.js için hazır yaklaşımlarla hangi teknolojiyi kullanırsanız kullanın hızlıca entegre olursunuz.
  • Reseller ve büyüme kolaylığı: Provider hizmetlerini kendi fiyatınızla, kendi markanız altında yeniden satarsınız.
  • Standart uyum: Yaygın v2 formatı sayesinde bir entegrasyonu çok küçük değişikliklerle başka panellere de taşırsınız.
  • Güvenli mimari: Şifreli API anahtarları, sunucu taraflı çağrılar ve idempotency ile para güvenliğini korursunuz.
  • Zengin sipariş türleri: Drip-Feed, Subscriptions, Custom Comments ve daha fazlasını tek API üzerinden yönetirsiniz.
  • Global ödeme esnekliği: USDT, Binance, Cryptomus ve daha fazla yöntemle dünyanın her yerinden tahsilat alırsınız.
  • Instagram, TikTok, YouTube, Telegram ve Facebook için followers, likes, views ve subscribers hizmetlerini tek noktadan sunarsınız.

Sonuç: Kendi SMM Panel İşinizi Bugün Başlatın

SMM panel API entegrasyonu, göründüğünden çok daha erişilebilir bir konudur. Ortak v2 standardını, temel action'ları ve PHP, Python, Node.js için gösterdiğimiz kalıpları öğrendiğinizde, güvenilir ve ölçeklenebilir bir sistem kurmak için gereken her şeye sahip olursunuz. Geriye kalan tek adım, tüm bu gücü size sunacak sağlam bir altyapı seçmektir.

PastePanel ile kendi white-label SMM panel işinizi kurabilir, tam kapsamlı API'ye erişebilir ve dünya çapında müşterilere hizmet verebilirsiniz. Hemen pastepanel.com adresine giderek ücretsiz olarak kendi SMM panel'inizi başlatın; kod örneklerini bugün kendi paneliniz üzerinde çalıştırmaya başlayın ve otomasyonun avantajını daha ilk siparişte hissedin.

Your brand, your revenue

Stop reading, start building.

The best lessons come from doing. Launch your own panel in five minutes.

Launch your panel