BetterSMM BETTERSMM

Reseller API v2

https://bettersmm.pro/api/v2

Endpoint: POST (JSON body) or GET (query string) to https://bettersmm.pro/api/v2. Both methods read the same fields: body first, then the query string. This is the public documentation. The API key is created in the dashboard after you register — this page does not show anyone else’s key.

The homepage uses this add example: key, action add, service 101, a Telegram link, quantity 1000. 101 is an illustration, the same as on the homepage — take real ids from action=services. Orders for a single link still go through the catalog and /en/register/; the API is for people who already run their own panel.

Implemented actions: services, add, status, cancel, refill, balance. Below we describe add, status and balance (as requested) plus services, because you need ids. cancel and refill exist in the same endpoint; they follow service flags and order state. Responses use currency RUB, not USD. Invalid key → error “Invalid API key”.

add — create an order

Required fields: service, link, quantity. Errors you may see: missing fields, invalid quantity, invalid service id, quantity outside min/max, insufficient balance, provider not configured.

Example body (same as the homepage)
{
  "key": "your_api_key",
  "action": "add",
  "service": 101,
  "link": "https://t.me/...",
  "quantity": 1000
}
Example response
{
  "order": 23501
}
key
API key from the dashboard
action
add
service
Numeric service id from action=services
link
Public URL the selected row expects
quantity
Integer inside that row’s min/max

status — order status

Required: order (the id returned by add). Missing id → “Missing order ID”. Unknown or foreign id → “Order not found”. status is the order status with the first letter capitalised (pending, in_progress, completed, partial, cancelled, refunded, error).

Example body
{
  "key": "your_api_key",
  "action": "status",
  "order": 23501
}
Example response
{
  "charge": "12.50",
  "start_count": 3572,
  "status": "Completed",
  "remains": 0,
  "currency": "RUB"
}
charge
Amount charged for the order, as a string
start_count
Count stored when the job activated
status
Capitalised order status
remains
Remaining quantity
currency
Always RUB in this API

balance — account balance

No extra fields besides key and action. Returns the panel balance in RUB.

Example body
{
  "key": "your_api_key",
  "action": "balance"
}
Example response
{
  "balance": "99.80",
  "currency": "RUB"
}
balance
Current balance as a string
currency
RUB

services — service list

Returns active catalog rows: service (id), name, type (Default), category, rate (string, personal rate if the account has one), min, max, refill, cancel. Use this list to pick a real service id before add.

Example body
{
  "key": "your_api_key",
  "action": "services"
}
service
Id for action=add
rate
Price per 1,000 in account currency (RUB panel)
min / max
Quantity limits
refill / cancel
Flags from the catalog row (cancel is currently always true)

Also implemented: action=cancel (order id; only some statuses) and action=refill (only if the service allows refill, within period, limit and cooldown). Panel FAQ: /en/faq/. Terms: /en/legal/.

After login this URL opens the dashboard key widget. Guests and search engines get this public page.

Home Catalog FAQ Sign up Legal