API
API isteklerini aşağıdaki uç noktaya POST edin. Anahtarınızı Hesap sayfasından alabilirsiniz.
| HTTP yöntemi | POST |
| API URL | https://demo.panels.followerhq.com/api/v2 |
| API anahtarı | Hesap sayfasından oluşturulur |
| Yanıt biçimi | JSON |
Servis listesi
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | services |
Örnek yanıt
[
{
"service": 1,
"name": "Followers",
"type": "Default",
"category": "First Category",
"rate": "0.90",
"min": "50",
"max": "10000",
"refill": true,
"cancel": true
},
{
"service": 2,
"name": "Comments",
"type": "Custom Comments",
"category": "Second Category",
"rate": "8",
"min": "10",
"max": "1500",
"refill": false,
"cancel": true
}
]Sipariş ekle
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | add |
| service | Service ID |
| link | Link to page |
| quantity | Needed quantity |
| runs(opsiyonel) | Runs to deliver (drip-feed) |
| interval(opsiyonel) | Interval in minutes (drip-feed) |
Örnek yanıt
{
"order": 23501
}Sipariş durumu
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | status |
| order | Order ID |
Örnek yanıt
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
}Çoklu sipariş durumu
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | status |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Örnek yanıt
{
"1": {
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
},
"10": {
"error": "Incorrect order ID"
},
"100": {
"charge": "1.44219",
"start_count": "234",
"status": "In progress",
"remains": "10",
"currency": "USD"
}
}Refill oluştur
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | refill |
| order | Order ID |
Örnek yanıt
{
"refill": "1"
}Çoklu refill
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | refill |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Örnek yanıt
[
{
"order": 1,
"refill": 1
},
{
"order": 2,
"refill": 2
},
{
"order": 3,
"refill": {
"error": "Incorrect order ID"
}
}
]Refill durumu
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | refill_status |
| refill | Refill ID |
Örnek yanıt
{
"status": "Completed"
}Çoklu refill durumu
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | refill_status |
| refills | Refill IDs (separated by a comma, up to 100 IDs) |
Örnek yanıt
[
{
"refill": 1,
"status": "Completed"
},
{
"refill": 2,
"status": "Rejected"
},
{
"refill": 3,
"status": {
"error": "Refill not found"
}
}
]Sipariş iptali
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | cancel |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Örnek yanıt
[
{
"order": 9,
"cancel": {
"error": "Incorrect order ID"
}
},
{
"order": 2,
"cancel": 1
}
]Bakiye
Parametreler
| Parametre | Açıklama |
|---|---|
| key | Your API key |
| action | balance |
Örnek yanıt
{
"balance": "100.84292",
"currency": "USD"
}Servis tipine göre `add` parametreleri
| Type | zorunlu | opsiyonel |
|---|---|---|
| Default | service, link, quantity | runs, interval (minutes) → drip-feed |
| Package | service, link | – |
| Custom Comments | service, link, comments (separated by \n) | – |
| Comment Likes | service, link, quantity, username | – |
| Subscriptions | service, username, min, max, delay (0, 5, 10, 15, 20, 30, 40, 50, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540, 600) | posts (new posts limit; unlimited when omitted), old_posts, expiry (d/m/Y) |
| Web Traffic | service, link, quantity, country ("US" or "United States"), device (1 Desktop, 2 Android, 3 iOS, 4 Mixed mobile, 5 Mixed all), type_of_traffic (1 Google Keyword, 2 Custom Referrer, 3 Blank Referrer) | runs, interval, google_keyword (required for type 1), referring_url (required for type 2) |
Sipariş durum metinleri
Pending, In progress, Processing, Completed, Partial, Canceled
Hata yanıtı
{
"error": "Incorrect request"
}PHP örnek kodu
example.txt dosyasını indir<?php
class Api
{
/** API URL */
public $api_url = 'https://demo.panels.followerhq.com/api/v2';
/** Your API key */
public $api_key = '';
/** Add order */
public function order($data) {
$post = array_merge(['key' => $this->api_key, 'action' => 'add'], $data);
return json_decode($this->connect($post));
}
/** Get order status */
public function status($order_id) {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'status',
'order' => $order_id
]));
}
/** Get orders status */
public function multiStatus($order_ids) {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'status',
'orders' => implode(",", (array)$order_ids)
]));
}
/** Get services */
public function services() {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'services',
]));
}
/** Refill order */
public function refill(int $orderId) {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'refill',
'order' => $orderId,
]));
}
/** Refill orders */
public function multiRefill(array $orderIds) {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'refill',
'orders' => implode(',', $orderIds),
]), true);
}
/** Get refill status */
public function refillStatus(int $refillId) {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'refill_status',
'refill' => $refillId,
]));
}
/** Get refill statuses */
public function multiRefillStatus(array $refillIds) {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'refill_status',
'refills' => implode(',', $refillIds),
]), true);
}
/** Cancel orders */
public function cancel(array $orderIds) {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'cancel',
'orders' => implode(',', $orderIds),
]), true);
}
/** Get balance */
public function balance() {
return json_decode($this->connect([
'key' => $this->api_key,
'action' => 'balance',
]));
}
private function connect($post) {
$_post = [];
if (is_array($post)) {
foreach ($post as $name => $value) {
$_post[] = $name . '=' . urlencode($value);
}
}
$ch = curl_init($this->api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if (is_array($post)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
}
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
$result = curl_exec($ch);
if (curl_errno($ch) != 0 && empty($result)) {
$result = false;
}
curl_close($ch);
return $result;
}
}
// Examples
$api = new Api();
$services = $api->services(); # return all services
$balance = $api->balance(); # return user balance
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'runs' => 2, 'interval' => 5]); # Default
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test']); # Package
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'comments' => "good pic\ngreat photo\n:)\n;)"]); # Custom Comments
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'username' => 'test']); # Comment Likes
$order = $api->order(['service' => 1, 'username' => 'username', 'min' => 100, 'max' => 110, 'posts' => 0, 'delay' => 30, 'expiry' => '11/11/2022']); # Subscriptions
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'country' => 'US', 'device' => 1, 'type_of_traffic' => 1, 'google_keyword' => 'test']); # Web Traffic
$status = $api->status($order->order); # return status, charge, remains, start count, currency
$statuses = $api->multiStatus([1, 2, 3]); # return status, charge, remains, start count, currency of selected orders
$refill = $api->refill(1); # return refill ID
$refills = $api->multiRefill([1, 2, 3]); # return refill IDs
$refillStatus = $api->refillStatus(1); # return refill status
$refillStatuses = $api->multiRefillStatus([1, 2, 3]); # return refill statuses
$cancel = $api->cancel([1, 2, 3]); # return cancel status