WebKit GuruWebKit Guru
Catalogue
Sign up
Developers

API for resellers and automation

One HTTP endpoint covers the whole workflow: read the catalogue, place orders, poll their status, request refills and cancellations. The protocol matches the format most SMM panels use, so an existing integration usually needs nothing but a new URL and key.

Address

POST https://webkit.guru/api/v2

POST only. Send either application/x-www-form-urlencoded or application/json — both are accepted, and responses are always JSON.

Authentication

The key travels in the request body as the key field. We store only its SHA-256 hash, so a key cannot be recovered from our database — if you lose it, issue a new one. A key can be revoked from the dashboard at any moment and stops working immediately.

Rate limit

60 requests per minute from one IP address. Above that the endpoint answers 429 and includes a Retry-After header telling you how many seconds to wait. Poll statuses in batches via orders rather than one call per order.

Methods

action=services

Service list

The full catalogue with prices, limits and refill flags. Prices already include your markup — these are the amounts charged to your balance.

ParameterTypeRequiredDescription
keystringyesAPI key from your dashboard, “API” tab
actionstringyesThe string “services”

Response

[
  {
    "service": 21251,
    "name": "Telegram — просмотры",
    "type": "Default",
    "category": "Telegram",
    "rate": 0.41,
    "min": 10,
    "max": 50000000,
    "refill": true,
    "cancel": true
  }
]
action=add

Create an order

Charges your balance and queues the order. If the provider rejects it, the amount is refunded automatically.

ParameterTypeRequiredDescription
keystringyesAPI key from your dashboard, “API” tab
actionstringyesThe string “add”
serviceintyesService ID from the services method
linkstringyesLink to the profile or post. The format is validated per platform and metric
quantityintyesQuantity within the service min and max
runsintnoDrip-feed: how many runs
intervalintnoDrip-feed: interval between runs, in minutes

Response

{ "order": 84213 }
action=status

Order status

A single order via order, or up to a hundred at once via orders.

ParameterTypeRequiredDescription
keystringyesAPI key from your dashboard, “API” tab
actionstringyesThe string “status”
orderintnoOrder ID
ordersint[]noComma-separated IDs, up to 100

Response

{
  "charge": "410.00",
  "start_count": "15420",
  "status": "in_progress",
  "remains": "3180",
  "currency": "RUB"
}

Batch response

{
  "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=refill

Request a refill

Available for services flagged refill. Returns a refill ID to check the status with.

ParameterTypeRequiredDescription
keystringyesAPI key from your dashboard, “API” tab
actionstringyesThe string “refill”
orderintnoOrder ID
ordersint[]noComma-separated IDs, up to 100

Response

{ "refill": 1932 }

Batch response

[
  { "order": 84213, "refill": 1932 },
  { "order": 84214, "error": "Order is not sent to provider yet" }
]
action=refill_status

Refill status

The ID is ours, not the provider's — you never need to know which supplier fulfils the order.

ParameterTypeRequiredDescription
keystringyesAPI key from your dashboard, “API” tab
actionstringyesThe string “refill_status”
refillintnoRefill ID
refillsint[]noComma-separated IDs, up to 100

Response

{ "status": "Completed" }

Batch response

[
  { "refill": 1932, "status": "Completed" },
  { "refill": 1933, "status": "Pending" }
]
action=cancel

Cancel an order

The provider may refuse a cancellation, so the order moves to cancel_requested. The actual cancellation and refund are confirmed by status sync.

ParameterTypeRequiredDescription
keystringyesAPI key from your dashboard, “API” tab
actionstringyesThe string “cancel”
orderintnoOrder ID
ordersint[]noComma-separated IDs, up to 100

Response

{ "cancel": 1 }

Batch response

[
  { "order": 84213, "cancel": 1 },
  { "order": 84214, "error": "Incorrect order ID" }
]
action=balance

Balance

Current account balance, in rubles.

ParameterTypeRequiredDescription
keystringyesAPI key from your dashboard, “API” tab
actionstringyesThe string “balance”

Response

{ "balance": "12480.50", "currency": "RUB" }

Code samples

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=1000

PHP

<?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();

Order statuses

The status field of the status method returns one of these values.

pending
Accepted by the panel, not yet sent to the provider
in_progress
Running
processing
Provider accepted it, delivery is about to start
completed
Fully delivered
partial
Partially delivered, the difference is refunded
cancel_requested
Cancellation requested, waiting for the provider
canceled
Cancelled, funds returned
failed
Could not be fulfilled, funds returned

Errors

Business errors come back with HTTP 200 and an error field. Only authentication and rate limiting use HTTP status codes.

401 · Invalid API key
The key is unknown or has been disabled in the dashboard
429 · Rate limit exceeded
More than 60 requests per minute from one address. The response carries a Retry-After header
Incorrect order ID
No order with this ID belongs to your account
Unknown action
The action value is not one of those listed above

Ready to connect?

Create an account, top up your balance and issue a key on the API tab. There is no separate approval step.

Create account
WebKit GuruWebKit Guru

Накрутка, SMS-активации и временная почта в одном сервисе. Более 3500 услуг, гарантия восполнения, моментальный старт.

support@webkit.guru

Promotion

  • Накрутка Telegram
  • Накрутка Instagram
  • Накрутка TikTok
  • Накрутка YouTube
  • Накрутка ВКонтакте

Service

  • Service catalogue
  • Help
  • API for developers
  • SMS activations
  • Temporary mail
  • Sign in
  • Sign up

Documents

  • Публичная оферта
  • Условия использования
  • Политика конфиденциальности
  • Контакты

The services offered are not official services of the social networks and are not affiliated with their rights holders. Platform names and logos belong to their owners and are used to indicate compatibility. We do not guarantee a specific promotion outcome: it depends on platform algorithms and may change. By placing an order you accept the public offer.

© 2026 webkit.guru

Support 10:00–22:00 MSK