Аўтарызацыя
Ключ перадаецца ў целе запыту полем key. У нас захоўваецца толькі яго SHA-256-хэш, таму аднавіць ключ з базы нельга — калі ён страчаны, выпусціце новы. Адключыць ключ можна ў кабінеце ў любы момант, ён перастае працаваць адразу.
Адзін HTTP-адрас закрывае ўвесь цыкл: атрымаць каталог, стварыць заказ, даведацца статус, запрасіць дабор або адмену. Пратакол супадае з фарматам, які выкарыстоўвае большасць SMM-панэляў, таму гатовай інтэграцыі звычайна дастаткова памяняць адрас і ключ.
Адрас
POST https://webkit.guru/api/v2
Толькі POST. Цела можна адпраўляць як application/x-www-form-urlencoded або як application/json — прымаюцца абодва фармату, адказ заўсёды JSON.
Ключ перадаецца ў целе запыту полем key. У нас захоўваецца толькі яго SHA-256-хэш, таму аднавіць ключ з базы нельга — калі ён страчаны, выпусціце новы. Адключыць ключ можна ў кабінеце ў любы момант, ён перастае працаваць адразу.
60 запытаў у хвіліну з аднаго IP-адраса. Пры перавышэнні прыходзіць код 429 і загаловак Retry-After з лікам секунд да наступнай спробы. Статусы лепш запрашваць пачкамі праз orders, а не па адным заказу за выклік.
action=servicesThe full catalogue with prices, limits and refill flags. Prices already include your markup — these are the amounts charged to your balance.
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
| key | string | так | API key from your dashboard, “API” tab |
| action | string | так | The string “services” |
Адказ
[
{
"service": 21251,
"name": "Telegram Views",
"type": "Default",
"category": "Telegram",
"rate": 0.41,
"min": 10,
"max": 50000000,
"refill": true,
"cancel": true
}
]action=addCharges your balance and queues the order. If the provider rejects it, the amount is refunded automatically.
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
| key | string | так | API key from your dashboard, “API” tab |
| action | string | так | The string “add” |
| service | int | так | Service ID from the services method |
| link | string | так | Link to the profile or post. The format is validated per platform and metric |
| quantity | int | так | Quantity within the service min and max |
| runs | int | не | Drip-feed: how many runs |
| interval | int | не | Drip-feed: interval between runs, in minutes |
Адказ
{ "order": 84213 }action=statusA single order via order, or up to a hundred at once via orders.
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
| key | string | так | API key from your dashboard, “API” tab |
| action | string | так | The string “status” |
| order | int | не | Нумар заказа |
| orders | int[] | не | Comma-separated IDs, up to 100 |
Адказ
{
"charge": "410.00",
"start_count": "15420",
"status": "in_progress",
"remains": "3180",
"currency": "RUB"
}Адказ для пакета
{
"84213": { "charge": "410.00", "status": "completed", "remains": "0", "start_count": "15420", "currency": "RUB" },
"84214": { "charge": "120.00", "status": "in_progress", "remains": "890", "start_count": "2310", "currency": "RUB" },
"84215": { "error": "Incorrect order ID" }
}action=refillAvailable for services flagged refill. Returns a refill ID to check the status with.
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
| key | string | так | API key from your dashboard, “API” tab |
| action | string | так | The string “refill” |
| order | int | не | Нумар заказа |
| orders | int[] | не | Comma-separated IDs, up to 100 |
Адказ
{ "refill": 1932 }Адказ для пакета
[
{ "order": 84213, "refill": 1932 },
{ "order": 84214, "error": "Order is not sent to provider yet" }
]action=refill_statusThe ID is ours, not the provider's — you never need to know which supplier fulfils the order.
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
| key | string | так | API key from your dashboard, “API” tab |
| action | string | так | The string “refill_status” |
| refill | int | не | Refill ID |
| refills | int[] | не | Comma-separated IDs, up to 100 |
Адказ
{ "status": "Completed" }Адказ для пакета
[
{ "refill": 1932, "status": "Completed" },
{ "refill": 1933, "status": "Pending" }
]action=cancelThe provider may refuse a cancellation, so the order moves to cancel_requested. The actual cancellation and refund are confirmed by status sync.
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
| key | string | так | API key from your dashboard, “API” tab |
| action | string | так | The string “cancel” |
| order | int | не | Нумар заказа |
| orders | int[] | не | Comma-separated IDs, up to 100 |
Адказ
{ "cancel": 1 }Адказ для пакета
[
{ "order": 84213, "cancel": 1 },
{ "order": 84214, "error": "Incorrect order ID" }
]action=balanceCurrent account balance, in rubles.
| Параметр | Тып | Абавязковы | Апісанне |
|---|---|---|---|
| key | string | так | API key from your dashboard, “API” tab |
| action | string | так | The string “balance” |
Адказ
{ "balance": "12480.50", "currency": "RUB" }cURL
curl -X POST https://webkit.guru/api/v2 \
-d key=YOUR_KEY \
-d action=add \
-d service=21251 \
-d link=https://t.me/example/42 \
-d quantity=1000PHP
<?php
$response = file_get_contents('https://webkit.guru/api/v2', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query([
'key' => 'YOUR_KEY',
'action' => 'add',
'service' => 21251,
'link' => 'https://t.me/example/42',
'quantity' => 1000,
]),
],
]));
$order = json_decode($response, true);Python
import requests
response = requests.post("https://webkit.guru/api/v2", data={
"key": "YOUR_KEY",
"action": "add",
"service": 21251,
"link": "https://t.me/example/42",
"quantity": 1000,
})
order = response.json()JavaScript
const response = await fetch("https://webkit.guru/api/v2", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
key: "YOUR_KEY",
action: "add",
service: 21251,
link: "https://t.me/example/42",
quantity: 1000,
}),
});
const order = await response.json();Поле status метаду status вяртае адно з гэтых значэнняў.
Памылкі бізнес-логікі прыходзяць з кодам 200 і полем error. HTTP-кодамі адказваюць толькі аўтарызацыя і абмежаванне частаты.
Зарэгіструйцеся, папоўніце баланс і выпусціце ключ на ўкладцы «API». Асобнага ўзгаднення не трэба.
Стварыць акаўнт