אימות
המפתח עובר בגוף הבקשה בשדה key. אצלנו נשמר רק ה-SHA-256 hash שלו, כך שלא ניתן לשחזר מפתח ממסד הנתונים שלנו — אם איבדת, הנפק חדש. ניתן לשלול מפתח מלוח הבקרה בכל רגע, והוא מפסיק לפעול מייד.
נקודת HTTP אחת מכסה את כל התהליך: קריאת הקטלוג, הזמנת שירותים, בדיקת סטטוס, בקשת Refill וביטולים. הפרוטוקול תואם לפורמט שרוב פאנלי SMM משתמשים בו, כך שאינטגרציה קיימת בדרך כלל מספיק רק כתובת ומפתח חדשים.
כתובת
POST https://webkit.guru/api/v2
POST בלבד. ניתן לשלוח גוף ב-application/x-www-form-urlencoded או ב-application/json — שני הפורמטים מתקבלים, והתגובה תמיד JSON.
המפתח עובר בגוף הבקשה בשדה key. אצלנו נשמר רק ה-SHA-256 hash שלו, כך שלא ניתן לשחזר מפתח ממסד הנתונים שלנו — אם איבדת, הנפק חדש. ניתן לשלול מפתח מלוח הבקרה בכל רגע, והוא מפסיק לפעול מייד.
60 בקשות לדקה מכתובת IP אחת. מעבר לכך ה-endpoint עונה 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 מחזיר אחד מהערכים האלה.
שגיאות עסקיות חוזרות עם HTTP 200 ושדה error. רק אימות ומגבלת קצב משתמשים בקודי סטטוס HTTP.