R
RapidoProSMM API v2

API dokümantasyonuAPI documentation

RapidoPro, standart SMM Panel API v2 sözleşmesini kullanır. Perfect Panel ve benzeri paneller, sağlayıcı (provider) olarak aşağıdaki adres ve size verilen API key ile doğrudan bağlanabilir.

RapidoPro implements the standard SMM Panel API v2 contract. Perfect Panel and compatible panels can connect directly as a provider using the URL below and the API key issued to you.

POSThttps://panelv2.rapidopro.com/api/v2

BaşlarkenGetting started

  1. Bizimle iletişime geçip hesap açtırın. Size özel bir API key verilir. Key'i kimseyle paylaşmayın; key'e sahip olan herkes bakiyenizle sipariş verebilir.
  2. Contact us to open an account. You will receive a personal API key. Keep it secret: anyone holding the key can place orders with your balance.
  3. Hesabınıza bakiye yükletin. Bakiye USD cinsindendir; her siparişte otomatik düşülür.
  4. Top up your balance. Balances are in USD and are deducted automatically for each order.
  5. Panelinizde yeni bir provider ekleyin: API URL olarak yukarıdaki adresi, API key olarak size verilen key'i girin. Ardından servisleri senkronize edin.
  6. Add a new provider in your panel: use the address above as the API URL and your key as the API key. Then sync services.
Tüm istekler POST ve application/x-www-form-urlencoded gövdeyle gönderilir. Her istekte key ve action zorunludur. Yanıtlar JSON'dur.
All requests are POST with an application/x-www-form-urlencoded body. key and action are required on every request. Responses are JSON.
Key sızdıysa hemen bize bildirin; eski key iptal edilip yenisi verilir.
If your key leaks, tell us immediately; we will revoke it and issue a new one.

Servis listesiService list

action=services

ParametreParameterAçıklamaDescription
key *API key'inizYour API key
action *services
Örnek yanıtExample response
[
  {
    "service": "10",
    "name": "TikTok Views",
    "category": "TikTok",
    "rate": "0.0050",
    "min": "100",
    "max": "100000",
    "type": "default",
    "dripfeed": false,
    "refill": false,
    "cancel": true
  }
]

rate, 1000 adet başına USD fiyattır. min ve max sipariş başına adet sınırlarıdır. Drip-feed ve refill desteklenmez; iptal desteklenir.

rate is the price in USD per 1000. min and max are per-order quantity limits. Drip-feed and refill are not supported; cancel is supported.

Sipariş oluşturmaCreate order

action=add

ParametreParameterAçıklamaDescription
key *API key'inizYour API key
action *add
service *Servis ID (services yanıtındaki service)Service ID (service from the services response)
link *TikTok video linki. Yalnızca https:// ve tiktok.com, www.tiktok.com, m.tiktok.com, vm.tiktok.com, vt.tiktok.com adresleri kabul edilir. En fazla 300 karakter.TikTok video link. Only https:// links on tiktok.com, www.tiktok.com, m.tiktok.com, vm.tiktok.com, vt.tiktok.com are accepted. Max 300 characters.
quantity *Adet; servisin min ile max değerleri arasında olmalıQuantity; must be between the service's min and max
Örnek yanıtExample response
{ "order": 23501 }

Ücret sipariş anında bakiyeden düşülür. runs veya interval gönderilirse sipariş Drip-feed is not supported hatasıyla reddedilir.

The charge is deducted from your balance when the order is placed. If runs or interval is sent, the order is rejected with Drip-feed is not supported.

Sipariş durumuOrder status

action=status tek siparişsingle order

ParametreParameterAçıklamaDescription
key *API key'inizYour API key
action *status
order *Sipariş IDOrder ID
Örnek yanıtExample response
{
  "charge": "0.2000",
  "start_count": "0",
  "status": "In progress",
  "remains": "40000",
  "currency": "USD"
}

action=status toplumultiple orders

ParametreParameterAçıklamaDescription
orders *Virgülle ayrılmış sipariş ID'leri, istek başına en fazla 100Comma-separated order IDs, up to 100 per request
Örnek yanıtExample response
{
  "23501": {
    "charge": "0.2000",
    "start_count": "0",
    "status": "Completed",
    "remains": "0",
    "currency": "USD"
  },
  "23502": { "error": "Incorrect order id" }
}

remains, henüz teslim edilmemiş adettir. start_count şu anda raporlanmaz ve her zaman 0 döner.

remains is the quantity not yet delivered. start_count is not reported at the moment and always returns 0.

Sipariş iptaliCancel orders

action=cancel

ParametreParameterAçıklamaDescription
key *API key'inizYour API key
action *cancel
orders *Virgülle ayrılmış sipariş ID'leri, en fazla 100Comma-separated order IDs, up to 100
Örnek yanıtExample response
[
  { "order": 23501, "cancel": 1 },
  { "order": 23502, "cancel": { "error": "Order cannot be canceled" } }
]

Yalnızca henüz işlenmeye başlamamış (Pending) siparişler iptal edilebilir. İptal edilen siparişin ücretinin tamamı bakiyenize iade edilir.

Only orders that have not started yet (Pending) can be canceled. The full charge of a canceled order is refunded to your balance.

BakiyeBalance

action=balance

Örnek yanıtExample response
{ "balance": "12.5000", "currency": "USD" }

Sipariş durumlarıOrder statuses

DurumStatusAnlamıMeaning
PendingSırada, henüz başlamadı. İptal edilebilir.Queued, not started yet. Can be canceled.
In progressİşleniyor. remains teslim ilerledikçe azalır.Being processed. remains decreases as delivery progresses.
CompletedTamamı teslim edildi.Fully delivered.
PartialBir kısmı teslim edildi. Teslim edilmeyen remains adedinin ücreti otomatik iade edildi.Partially delivered. The charge for the undelivered remains was refunded automatically.
Canceledİptal edildi (sizin isteğinizle ya da link işlenemediği için). Ücretin tamamı iade edildi.Canceled (by your request or because the link could not be processed). The full charge was refunded.

Ücret ve iadeBilling & refunds

quantity ÷ 1000 × rateSipariş ücreti, 4 ondalık haneye yuvarlanırOrder charge, rounded to 4 decimals
charge × remains ÷ quantityPartial siparişte iade edilen tutarRefund for a Partial order
  • Ücret sipariş anında bakiyeden düşülür; bakiye yetmezse sipariş not enough balance hatasıyla reddedilir.
  • The charge is deducted when the order is placed; if the balance is insufficient the order is rejected with not enough balance.
  • İadeler otomatiktir ve sipariş sonuçlandığı anda bakiyenize yansır. Toplam iade hiçbir zaman ödenen ücreti aşmaz.
  • Refunds are automatic and are credited as soon as the order is finalized. A refund never exceeds the amount charged.

HatalarErrors

Hatalar SMM v2 standardına uygun olarak HTTP 200 ve {"error": "..."} gövdesiyle döner. Tek istisna limit aşımıdır (HTTP 429).

Following the SMM v2 convention, errors are returned with HTTP 200 and a {"error": "..."} body. The only exception is rate limiting (HTTP 429).

MesajMessageNedenCause
Incorrect API keyKey yanlış ya da hesap durdurulmuşWrong key or account disabled
Incorrect service idServis yok ya da kapalıService does not exist or is disabled
quantity invalidAdet pozitif bir tam sayı değilQuantity is not a positive integer
quantity must be between …Adet servisin min ile max sınırı dışındaQuantity outside the service's min/max
Incorrect linkLink geçerli bir https TikTok adresi değilLink is not a valid https TikTok URL
not enough balanceBakiye sipariş ücretine yetmiyorBalance does not cover the charge
Drip-feed is not supportedruns veya interval gönderildiruns or interval was sent
Refill is not supportedrefill / refill_status desteklenmezrefill / refill_status are not supported
Incorrect order idSipariş yok ya da size ait değilOrder does not exist or is not yours
Order cannot be canceledSipariş başlamış ya da zaten sonuçlanmışOrder already started or finalized
Unknown actionGeçersiz actionInvalid action
Too many requestsLimit aşıldı (HTTP 429); bir süre sonra tekrar deneyinRate limit exceeded (HTTP 429); retry later

Kullanım limitleriRate limits

240 / dkminKey başına toplam istekTotal requests per key
60 / dkminKey başına yeni siparişNew orders per key
300 / dkminIP adresi başına istekRequests per IP address
20 / 15 dkminHatalı key denemesi; aşılırsa IP 15 dk engellenirFailed key attempts; exceeding blocks the IP for 15 min

Durum kontrolü için tek tek istek yerine toplu orders= sorgusunu kullanın; tek istekte 100 sipariş sorgulanabilir.

Use the bulk orders= query for status checks instead of one request per order; up to 100 orders per request.

Örnek kodCode examples

curl
curl -X POST https://panelv2.rapidopro.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=add \
  -d service=10 \
  -d link=https://www.tiktok.com/@user/video/1234567890 \
  -d quantity=1000
PHP
<?php
function rapido(array $params) {
    $params['key'] = 'YOUR_API_KEY';
    $ch = curl_init('https://panelv2.rapidopro.com/api/v2');
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => http_build_query($params),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 30,
    ]);
    $res = curl_exec($ch);
    curl_close($ch);
    return json_decode($res, true);
}

$order  = rapido(['action' => 'add', 'service' => 10,
                  'link' => 'https://www.tiktok.com/@user/video/1234567890',
                  'quantity' => 1000]);
$status = rapido(['action' => 'status', 'orders' => '23501,23502']);
$money  = rapido(['action' => 'balance']);
Python
import requests

API = "https://panelv2.rapidopro.com/api/v2"
KEY = "YOUR_API_KEY"

def call(**params):
    r = requests.post(API, data={"key": KEY, **params}, timeout=30)
    return r.json()

order = call(action="add", service=10,
             link="https://www.tiktok.com/@user/video/1234567890", quantity=1000)
print(call(action="status", order=order["order"]))