🎁 ۱۰٪ اعتبار هدیه برای اولین شارژ
  1. Home
  2. Developers

Reseller API

Connect your own panel, website or Telegram bot to ClickPop and sell our services under your own brand. The request format is the one SMM panel scripts already use, so connecting usually takes a few minutes.

POST https://clickpop.ir/api/reseller/v1
  • HTTPS only
  • Form data or JSON in, JSON out
  • Prices in Toman, per 1,000
  • 240 requests per minute per key

Quick start

  1. Get a keyIn your panel open “API” and create a key. You can limit it to your server IPs.
  2. Add us as a providerIn your panel script set the API URL to the endpoint above and paste the key.
  3. Import servicesCall “services”, pick what you want to sell and set your own prices.

Request format

Every call is a POST to the same address. Send the parameters as form data (application/x-www-form-urlencoded) or as a JSON body; the answer is always JSON in UTF-8.

ParameterRequiredDescription
keyYesYour API key
actionYesservices · add · status · refill · refill_status · cancel · balance

Service list

action=services

All active services with your price. Cache the list for a few minutes instead of calling it before every order.

Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=services
Response
[
  {
    "service": 1204,
    "name": "Instagram followers — Iranian, high quality, 30-day refill",
    "type": "Default",
    "category": "Instagram — Followers",
    "rate": "48000",
    "min": "100",
    "max": "50000",
    "refill": true,
    "cancel": false,
    "dripfeed": false
  }
]
FieldDescription
serviceService ID — use it in “add”
rateYour price in Toman for 1,000 (your account discount is already applied)
min / maxAllowed quantity per order
refillDrop refill can be requested for this service
cancelThe order can be cancelled before delivery starts

New order

action=add
ParameterRequiredDescription
serviceYesService ID
linkYesPage, post or channel link (https://…)
quantityYesBetween min and max of the service
Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=add \
  -d service=1204 \
  -d link=https://instagram.com/yourpage \
  -d quantity=1000
Response
{"order": 10482}

The price is taken from your wallet when the order is placed. Undelivered parts are refunded automatically.

Order status

action=status
Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=status \
  -d order=10482
Response
{
  "charge": "48000",
  "start_count": "1520",
  "status": "In progress",
  "remains": "380",
  "currency": "IRT"
}

Several orders at once

action=status

Up to 100 order IDs, separated by commas.

Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=status \
  -d orders=10482,10483
Response
{
  "10482": {"charge": "48000", "start_count": "1520", "status": "Completed", "remains": "0", "currency": "IRT"},
  "10483": {"error": "Incorrect order ID"}
}

Refill

action=refill

For services with refill: true, once every 24 hours per order. Send “orders” with commas for several orders.

Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=refill \
  -d order=10482
Response
{"refill": 50017}

Refill status

action=refill_status
Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=refill_status \
  -d refill=50017
Response
{"status": "Completed"}

Cancel

action=cancel

Only for services with cancel: true and before delivery starts. The undelivered part is refunded automatically.

Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=cancel \
  -d orders=10482,10483
Response
[
  {"order": 10482, "cancel": 1},
  {"order": 10483, "cancel": {"error": "Cancel is not available for this order"}}
]

Balance

action=balance
Request
curl -X POST https://clickpop.ir/api/reseller/v1 \
  -d key=YOUR_KEY \
  -d action=balance
Response
{"balance": "2500000", "currency": "IRT"}

Order statuses

StatusMeaning
PendingReceived, waiting to start
In progressBeing delivered; “remains” shows what is left
CompletedFully delivered
PartialPartly delivered; the rest is already back in your wallet
CanceledNot delivered; the full amount is back in your wallet

Errors

Errors come back as {"error": "…"}. The text is stable, so your code can check it.

ErrorWhat to do
Invalid API keyCheck the key, or create a new one in your panel
IP not allowedAdd your server IP to the key, or remove the IP limit
Not enough funds on balanceTop up your wallet
Incorrect service IDThe service was removed or paused; reload the service list
Quantity out of rangeUse a quantity between min and max
Incorrect linkSend a full, public link of the right platform
Incorrect order IDThe order does not exist on this account
Orders are paused, try again laterShort maintenance; retry in a few minutes
Incorrect requestA required parameter is missing or the action is unknown

HTTP 429 means too many requests: wait a minute and slow down.

Sample code

PHP
<?php
function api(array $params): array
{
    $ch = curl_init('https://clickpop.ir/api/reseller/v1');
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => http_build_query(['key' => 'YOUR_KEY'] + $params),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 30,
    ]);
    $json = json_decode((string) curl_exec($ch), true);
    curl_close($ch);
    return is_array($json) ? $json : ['error' => 'No response'];
}

$order = api(['action' => 'add', 'service' => 1204, 'link' => 'https://instagram.com/yourpage', 'quantity' => 1000]);
print_r($order);

Limits and security

  • Up to 240 requests per minute per key.
  • You can restrict each key to your server IPs.
  • Keys are shown once and stored only as a hash; revoke and recreate them any time.
  • Keep the key on your server only — never put it in a website’s JavaScript or a mobile app.
Get your API key

Free for every account. No monthly fee, no minimum.

Open API settings