Zooglet

API Documentation

Automate your social media growth. Connect your panel to Zooglet instantly using our standard API.

https://zooglet.com/api/v2/

Navigation

Authentication Service List Add Order Order Status Refill Order Refill Status Cancel Order User Balance PHP Example

Authentication & Limits

To use the API, you must have an active account with API access enabled. You can generate your unique API key in your account settings.

All API requests must include your key as a parameter.

Dynamic Multi-Tier Rate Limiting: Our API uses a highly optimized, burst-friendly rate limit that automatically scales based on your account's assigned tier (Basic, Pro, Elite, or Custom). Exceeding your tier's capacity returns a 429 Too Many Requests response.

Service List POST / GET

Returns a complete list of all active standard services, including their pricing, limits, and refill/cancel capabilities.

ParameterDescription
keyYour API Key
actionMust be exactly services
Example Response:
[
  {
    "service": 1,
    "name": "Instagram Followers [High Quality]",
    "type": "Default",
    "category": "Category 1",
    "rate": "0.9000",
    "min": 100,
    "max": 10000,
    "refill": true,
    "cancel": true
  },
  {
    "service": 2,
    "name": "Instagram Custom Comments",
    "type": "Custom Comments",
    "category": "Category 2",
    "rate": "1.5000",
    "min": 10,
    "max": 1000,
    "refill": false,
    "cancel": false
  }
]

Add Standard Order POST

Places a standard real-time order securely. Funds will be deducted from your account balance automatically.

ParameterDescription
keyYour API Key
actionMust be exactly add
serviceService ID (obtained from the Service List)
linkLink to the target profile or post
quantityAmount you want to order. (Not required for Custom Comments)
commentsCustom comments separated by line breaks (\n or \r\n).
Required only for Custom Comments services.
Example Response (Success):
{
  "order": 23501
}

Check Order Status POST / GET

Check the delivery status of a single order or multiple orders simultaneously.

ParameterDescription
keyYour API Key
actionMust be exactly status
orderThe Order ID (for single status)
ordersComma-separated Order IDs, max 100 (for bulk status)
Example Response (Single):
{
  "status": "In progress",
  "charge": "0.2700",
  "start_count": 350,
  "remains": 50
}
Example Response (Bulk):
{
  "23501": {
    "status": "In progress",
    "charge": "0.2700",
    "start_count": 350,
    "remains": 50
  },
  "23502": {
    "status": "Completed",
    "charge": "1.5000",
    "start_count": 100,
    "remains": 0
  }
}

Refill Order POST / GET

Request a refill for completed standard orders. Supports single and bulk requests. Refills are strictly governed by service eligibility and cooldowns.

ParameterDescription
keyYour API Key
actionMust be exactly refill
orderThe Order ID (for single request)
ordersComma-separated Order IDs, max 100 (for bulk request)
Example Response (Single):
{
  "refill": 105
}
Example Response (Bulk):
[
  {
    "order": 23501,
    "refill": 105
  },
  {
    "order": 23502,
    "error": "Refill is currently on cooldown.",
    "retry_after": 86350
  }
]

Refill Status NEW

Check the status of your requested refills. Supports single and bulk lookups.

ParameterDescription
keyYour API Key
actionMust be exactly refill_status
refillThe Refill ID (for single status)
refillsComma-separated Refill IDs, max 100 (for bulk status)
Example Response (Bulk):
{
  "105": {
    "status": "Completed"
  },
  "106": {
    "status": "Pending"
  }
}

Cancel Order POST / GET

Execute surgical cancellations to stop standard orders if they are in an eligible state. Supports single and bulk cancellations.

ParameterDescription
keyYour API Key
actionMust be exactly cancel
orderThe Order ID (for single request)
ordersComma-separated Order IDs, max 100 (for bulk request)
Example Response (Single):
{
  "success": "Cancel requested successfully."
}
Example Response (Bulk):
[
  {
    "order": 23501,
    "cancel": "Requested"
  },
  {
    "order": 23502,
    "error": "Order already finalized (Completed)"
  }
]

User Balance POST / GET

Check your current account balance programmatically.

ParameterDescription
keyYour API Key
actionMust be exactly balance
Example Response:
{
  "balance": "150.4500",
  "currency": "USD"
}

PHP Code Example

Use this comprehensive PHP cURL wrapper to fully utilize the API actions, including the new bulk arrays.

<?php
class Api
{
    public $api_url = 'https://zooglet.com/api/v2/';
    public $api_key = 'YOUR_API_KEY_HERE';

    public function order($data) {
        $post = array_merge(['key' => $this->api_key, 'action' => 'add'], $data);
        return json_decode((string)$this->connect($post));
    }

    public function status($order_id) {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'status',
            'order' => $order_id
        ]));
    }

    public function multiStatus($order_ids) {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'status',
            'orders' => implode(",", (array)$order_ids)
        ]));
    }

    public function services() {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'services',
        ]));
    }

    public function refill(int $orderId) {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill',
            'order' => $orderId,
        ]));
    }

    public function multiRefill(array $orderIds) {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill',
            'orders' => implode(',', $orderIds),
        ]), true);
    }

    public function refillStatus(int $refillId) {
         return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill_status',
            'refill' => $refillId,
        ]));
    }

    public function multiRefillStatus(array $refillIds) {
         return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'refill_status',
            'refills' => implode(',', $refillIds),
        ]), true);
    }

    public function cancel(array $orderIds) {
        return json_decode($this->connect([
            'key' => $this->api_key,
            'action' => 'cancel',
            'orders' => implode(',', $orderIds),
        ]), true);
    }

    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_POST, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

        if (is_array($post)) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
        }
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
}

// ==========================================
// Example Usage:
// ==========================================
$api = new Api();

// 1. Fetch balance
$balance = $api->balance();

// 2. Fetch bulk statuses
$statuses = $api->multiStatus([101, 102, 103]);

// 3. Request bulk refills
$refill = (array) $api->multiRefill([101, 102]);
$refillIds = array_column($refill, 'refill');
if ($refillIds) {
    $refillStatuses = $api->multiRefillStatus($refillIds);
}
?>