Support
BOOST SERVICE WORKING 24/7
Promo code september007 — 11% off viewers until end of September
1
Status
Twitch [viewers, raids, views] — Working
Kick [authorization viewers] — Working
Other [views, viewers] — Working
2
Support
Problems with the order? Write to the chat
Need 10,000–100,000 viewers? Admin's Telegram — @TiKey_K
3
Bonuses
Register and get bonuses
Become a service partnerlink
Referral systemlink
API

API

API documentation

One POST request for everything: orders, status, service list, balance. Compatible with Perfect Panel and SmartPanel.

Endpointhttps://stream-promotion.ru/api/v2
MethodPOST
FormatJSON
CurrencyUSDdefault, can be changed in settings
This is the shop API. The viewer configurator has its own API: a different endpoint and a different authorization method. The key, however, is the same.
Three mistakes that break it most often
  • The request was sent with GET. Only POST is accepted.
  • Parameters were passed in the URL. They must go in the request body, not the query string.
  • No User-Agent set. When testing with Postman or curl, set it explicitly.

You are responsible for what you send through the API. Read the method descriptions before connecting.

How to get a key

  1. Sign in to your account.
  2. Open the «API settings» section.
  3. Copy the key and the endpoint, add them to your panel.

The service list comes in the language selected in the API settings. The price currency can be chosen there too — USD by default.

Quick start

Check the connection with a balance request — it is the simplest one and creates nothing.

curl -X POST https://stream-promotion.ru/api/v2 \
  -H "User-Agent: MyPanel/1.0" \
  -d "key=YOUR_KEY" \
  -d "action=balance"
<?php
$ch = curl_init('https://stream-promotion.ru/api/v2');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'MyPanel/1.0');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'key'    => 'YOUR_KEY',
    'action' => 'balance',
]));
$res = json_decode(curl_exec($ch), true);
curl_close($ch);

print_r($res);
import requests

res = requests.post(
    "https://stream-promotion.ru/api/v2",
    data={"key": "YOUR_KEY", "action": "balance"},
    headers={"User-Agent": "MyPanel/1.0"},
    timeout=30,
)
print(res.json())
const res = await fetch("https://stream-promotion.ru/api/v2", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded",
    "User-Agent": "MyPanel/1.0",
  },
  body: new URLSearchParams({
    key: "YOUR_KEY",
    action: "balance",
  }),
});

console.log(await res.json());

Response

{
    "status": "success",
    "balance": "0.03",
    "currency": "USD"
}

Methods

The method is chosen with the action parameter. The key is always required.

Place an order

The main method. runs and interval split delivery into parts: for example, 7 runs with a 1440-minute interval stretch the order over a week.

The parameter set depends on the service type — pick one from the list and the table will update.

ParameterDescription
keyrequiredYour key from the API settings
actionrequiredadd
servicerequiredService ID from the list
linkrequiredLink to a channel, stream or page
quantityrequiredQuantity
runsoptionalNumber of runs
intervaloptionalPause between runs, in minutes. Whole number: 10, 20, 30, 60

Response

{
    "status": "success",
    "order": 32
}

Order with comments

A separate order type: instead of a quantity you pass a list of comments. Suited for mentions and custom comments.

ParameterDescription
keyrequiredYour key from the API settings
actionrequiredadd
servicerequiredPackage ID
linkrequiredLink to a channel, stream or page
commentsrequiredComments, one per line

Response

{
    "status": "success",
    "order": 32
}

Order status

ParameterDescription
keyrequiredYour key from the API settings
actionrequiredstatus
orderrequiredOrder ID

Response

{
    "order": "32",
    "status": "pending",
    "charge": "0.27819",
    "start_count": "0",
    "remains": "0",
    "currency": "USD"
}

Status of multiple orders

Up to a hundred orders in one request — instead of a hundred separate calls.

ParameterDescription
keyrequiredYour key from the API settings
actionrequiredstatus
ordersrequiredIDs separated by commas: 12,13,14

Response

{
    "12": {
        "order": "12",
        "status": "completed",
        "charge": "0.27819",
        "currency": "USD"
    },
    "13": {
        "error": "Incorrect order ID"
    }
}

Service list

Returns every available service with prices. Names come in the language from your API settings; prices are always in dollars.

ParameterDescription
keyrequiredYour key from the API settings
actionrequiredservices

Response

[
    {
        "service": "5",
        "name": "Instagram Followers",
        "rate": "0.9",
        "min": "50",
        "max": "10000",
        "type": "Default",
        "category": "Instagram"
    }
]

Balance

The simplest method — handy for checking that the key works.

ParameterDescription
keyrequiredYour key from the API settings
actionrequiredbalance

Response

{
    "status": "success",
    "balance": "0.03",
    "currency": "USD"
}

Errors

On failure the response contains an error field with a description. The HTTP code stays 200 — check the response body, not the connection status.

{
    "error": "Incorrect request"
}
Need a ready-made resale site?

We will build a turnkey panel on our services. Balance and prices are returned in dollars, compatible with Perfect Panel and SmartPanel.

Message on Telegram
type: default
Deposit funds, one-click order, discounts and bonuses are available only for registered users. Register.
If you didn't find the right service or found it cheaper, write to I will support you in tg or chat, and we will resolve any issue.

Viewer control panel [Twitch | Kick | YouTube | VK Video Live]

Build your own custom plan