REST API · Votway
Public API
Place orders from your own scripts and services. Create a key in Settings → API.
Authentication
Pass your API key in the header for catalog, balance, transactions, and orders.
POST /api/v1/orders
{
"service_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"link": "https://t.me/channel",
"quantity": 1000
}Platforms and services
Platforms and categories first, then services. Orders use the service id (service_id). Check order_type: default — link and quantity; subscription — username plus extra.min/max/posts or a fixed link+quantity pack; autoclick — channel or chat_id; traffic — link, volume, and interval extras.
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /catalog/platforms | X-API-Key | Store platforms (Telegram, VK, …). Platform id is not sent when creating an order |
| GET | /catalog/categories | X-API-Key | Categories. Use platform and id with GET /catalog/services?category_id= |
| GET | /catalog/services?category_id= | X-API-Key | Services: id, order_type, min/max, price. Prices include the key owner's discounts |
| GET | /catalog/services/{service_id} | X-API-Key | One service — take service_id from here for the order |
| POST | /catalog/calculate | X-API-Key | Quote: { service_id, quantity } → amount, currency |
Account
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /profile/balance | X-API-Key | Current balance (RUB) |
| GET | /transactions | X-API-Key | Transaction history |
| GET | /transactions/{transaction_id} | X-API-Key | Single transaction |
Orders
Cancel with POST /cancel when allow_user_cancel. Pause and resume with /stop and /start when can_stop / can_start. Edit autoclick and traffic with PATCH when can_edit. Poll GET for status; there is no webhook. refill is 501 for now.
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /orders | X-API-Key | Create an order: service_id, link/quantity or extra based on the service order_type |
| GET | /orders | X-API-Key | List (limit≤300, offset, search, platform, status_group, order_type) |
| GET | /orders/{order_id} | X-API-Key | Status, progress, can_stop/can_start/can_edit flags, child tasks |
| POST | /orders/{order_id}/cancel | X-API-Key | Cancel when allow_user_cancel. Returns order, refund_amount, balance |
| POST | /orders/{order_id}/stop | X-API-Key | Pause autoclick, traffic, or autopost when can_stop |
| POST | /orders/{order_id}/start | X-API-Key | Resume when can_start |
| PATCH | /orders/{order_id} | X-API-Key | Edit autoclick/traffic when can_edit: clicks, interval, geo, source |
Autoclick: channels
Closed Telegram: check-channel → connect-code (give the bot the code) → channels (chat_id) → POST /orders with chat_id. MAX: connect-link → channels → order with platform=max and chat_id.
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /orders/autoclick/check-channel | X-API-Key | Check a channel: service_id plus channel or chat_id |
| POST | /orders/autoclick/telegram/connect-code | X-API-Key | Code for the bot in a closed Telegram channel |
| POST | /orders/autoclick/telegram/channels | X-API-Key | Connected Telegram channels (optional refresh, chat_id) |
| POST | /orders/autoclick/max/connect-link | X-API-Key | Personal MAX connection link |
| POST | /orders/autoclick/max/channels | X-API-Key | Connected MAX channels (optional refresh, chat_id) |
Swagger
Interactive reference: every method, request and response fields, and example bodies. Try requests with your API key.
Errors and limits
Error body: {"detail": "..."}. 401 — missing or invalid key. 429 — wait and retry. POST /orders/{id}/refill returns 501. Balance top-up is not available with an API key.