SMM-HELPER never asks for the passwords of your social accounts. Our only website is smm-helper.com.

API v2

SMM-HELPER API

Standard SMM API v2. Add the URL and your key to the panel you run and services, orders and statuses connect as they are.

Base URL
https://smm-helper.com/api/v2
Request
POST recommended (GET works) · form (application/x-www-form-urlencoded) or JSON
Auth
key parameter on every request
Response
JSON. Errors are {"error": "message"}
Currency
USD (deducted from your credit)
Rate limit
300 calls per minute per key
Balance
services, deposit, deposit_status and credit work before your first top-up (panel setup, top-ups). Everything else works once you have topped up

Connect the panel you run

Any panel that speaks standard SMM API v2 (Perfect Panel and others) can add us as a provider.

  1. 1

    Add provider

    Admin > Providers > Add. API URL: https://smm-helper.com/api/v2, API key: your key.

  2. 2

    Import services

    Load our service list, pick services and set your selling price. Our service IDs don't change.

  3. 3

    Fund your credit

    Orders are paid from your credit here. Top up in Dashboard > Add funds.

Code example: add an order

Orders 1,000 of service #2145 (Instagram Real Followers - APP Data - Instant - Speed : 100-300K/D - NoRefill). Replace YOUR_API_KEY with your key.

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=add \
  -d service=2145 \
  -d link=https://www.tiktok.com/@yourbrand/video/123 \
  -d quantity=1000
action=services

Service list

All services you can order. rate is USD per 1,000. Service IDs don't change, so you can map them in your panel as is.

ParameterRequiredDescription
keyYesYour API key
actionYes"services"

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=services

Response

[
  {
    "service": 2145,
    "name": "Instagram Real Followers - APP Data - Instant - Speed : 100-300K/D - NoRefill",
    "type": "Default",
    "category": "Instagram - Follower (Working)",
    "rate": "0.308",
    "min": "10",
    "max": "1000000",
    "refill": false,
    "cancel": true
  },
  {
    "service": 2146,
    "name": "Instagram Followers - Old Accounts With Posts - Instant - Speed : 1K/D - NoRefill",
    "type": "Default",
    "category": "Instagram - Follower (Working)",
    "rate": "0.8624",
    "min": "100",
    "max": "10000",
    "refill": false,
    "cancel": true
  },
  …
]
action=add

Add order

The cost is deducted from your credit and the order ID is returned. If part of an order can't be delivered, the undelivered quantity is refunded to your credit.

ParameterRequiredDescription
keyYesYour API key
actionYes"add"
serviceYesService ID (service from services)
linkYesLink to the profile, post, video or page (or @username for some profile services)
quantityYesQuantity within the service's min and max (omit for Custom Comments)
commentsNoCustom Comments only: comments separated by \n. The number of lines is the quantity

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=add \
  -d service=2145 \
  -d link=https://www.tiktok.com/@yourbrand/video/123 \
  -d quantity=1000

Response

{
  "order": 23501
}

For Custom Comments services (e.g. #2124) send comments (one per line) instead of quantity.

action=status

Order status

Progress of one order. charge is the amount actually spent (after refunds), remains is the quantity left, progress is percent done and delivered is the quantity delivered. Updated every minute.

ParameterRequiredDescription
keyYesYour API key
actionYes"status"
orderYesOrder ID

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=status \
  -d order=23501

Response

{
  "charge": "0.31",
  "start_count": "1520",
  "status": "In progress",
  "remains": "240",
  "progress": "76",
  "delivered": "760",
  "currency": "USD"
}
action=status

Multiple order status

Up to 100, separated by commas. Each order gets its own result; unknown IDs get an error in their slot.

ParameterRequiredDescription
keyYesYour API key
actionYes"status"
ordersYesOrder IDs separated by commas (up to 100)

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=status \
  -d orders=23501,23502,99999

Response

{
  "23501": {
    "charge": "0.31",
    "start_count": "1520",
    "status": "Completed",
    "remains": "0",
    "progress": "100",
    "delivered": "1000",
    "currency": "USD"
  },
  "23502": {
    "charge": "0.18",
    "start_count": "870",
    "status": "Partial",
    "remains": "400",
    "progress": "60",
    "delivered": "600",
    "currency": "USD"
  },
  "99999": {
    "error": "Incorrect order ID"
  }
}
action=cancel

Cancel (stop) orders

Stops orders in progress. Before start: full refund; in progress: the undelivered quantity is refunded and the order ends as Canceled or Partial. Finished orders can't be canceled.

ParameterRequiredDescription
keyYesYour API key
actionYes"cancel"
ordersYesOrder IDs separated by commas (up to 100; order also works for one)

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=cancel \
  -d orders=23501,23502

Response

[
  {
    "order": 23501,
    "cancel": 1
  },
  {
    "order": 23502,
    "cancel": {
      "error": "Order is already completed or canceled"
    }
  }
]
action=refill

Refill an order

Asks for a refill of a completed or partial order on a refill service. One refill can run per order, and a new request is possible 24 hours after the last one.

ParameterRequiredDescription
keyYesYour API key
actionYes"refill"
orderYesOrder ID (or orders: up to 100 IDs separated by commas)

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=refill \
  -d order=23501

Response

{
  "refill": 1
}
action=refill_status

Refill status

Status of a refill you requested: Pending, In progress, Completed or Rejected.

ParameterRequiredDescription
keyYesYour API key
actionYes"refill_status"
refillYesRefill ID (or refills: up to 100 IDs separated by commas)

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=refill_status \
  -d refill=1

Response

{
  "status": "Completed"
}
action=deposit

Create a top-up

Creates a USDT (TRC20) top-up. Send exactly amount (6 decimals) to address and it's credited automatically (plus bonus if eligible), usually within 1 to 2 minutes. Minimum 25 USD, maximum 5,000 USD, one pending top-up at a time, valid until expires_at.

ParameterRequiredDescription
keyYesYour API key
actionYes"deposit"
amountYesAmount in USD (25 to 5,000)

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=deposit \
  -d amount=300

Response

{
  "deposit": "K7Q2M9XD",
  "status": "Pending",
  "currency": "USDT",
  "network": "TRC20",
  "address": "TXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "amount": "300.776583",
  "bonus": "15.03",
  "credited": "0.00",
  "txid": null,
  "created_at": "2026-10-07T06:41:14.203Z",
  "expires_at": "2026-10-07T07:41:14.202Z"
}
action=deposit_status

Top-up status

Status of a top-up. Completed means credited and bonus were added to your credit. Pending · Completed · Expired · Canceled · Rejected.

ParameterRequiredDescription
keyYesYour API key
actionYes"deposit_status"
depositYesTop-up code (deposit in the deposit response, e.g. K7Q2M9XD)

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=deposit_status \
  -d deposit=K7Q2M9XD

Response

{
  "deposit": "K7Q2M9XD",
  "status": "Completed",
  "currency": "USDT",
  "network": "TRC20",
  "address": "TXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "amount": "300.776583",
  "bonus": "15.03",
  "credited": "300.776583",
  "txid": "4c1f…e93a",
  "created_at": "2026-10-07T06:41:14.203Z",
  "expires_at": "2026-10-07T07:41:14.202Z"
}
action=balance

Balance

Current credit in USD.

ParameterRequiredDescription
keyYesYour API key
actionYes"balance"

Request

curl -X POST https://smm-helper.com/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=balance

Response

{
  "balance": "1250.40",
  "currency": "USD"
}

Order statuses

PendingReceived, starting soon
ProcessingBeing prepared
In progressDelivering
CompletedDone
PartialPartly delivered; the rest is refunded to your credit
CanceledCanceled; fully refunded to your credit

Errors

Errors come as {"error": "…"}. Only key and rate-limit errors use HTTP 401/429; the rest return 200.

errorHTTPCause
The API is available after your first top-up …200Called anything other than services, deposit, deposit_status or credit before the first top-up
Invalid API key401Missing or wrong key (including an old key after regenerating)
Too many requests429More than 300 calls per minute per key
Incorrect request200Missing or unknown action
Incorrect service ID200service is not a number
This service is not available.200Service is not on sale
Enter the profile, channel or page link, or the @username.200link is empty or not a valid link or @username (profile services)
Enter the full link to the post, video or page.200link is empty or not a valid link (other services)
Quantity must be between {min} and {max}.200quantity is outside the service's min and max
Please enter at least one comment.200Custom Comments without comments
Not enough credit.200Not enough credit (top up)
Incorrect order ID200Not your order or unknown ID
Order is already completed or canceled200cancel: the order already finished
This order can't be canceled now200cancel: the fulfilment system can't stop it now
Minimum deposit is 25 USDT.200deposit: below the minimum
You already have a pending deposit. …200deposit: a top-up is already pending (see deposit in the response)
Incorrect deposit ID200deposit_status: not yours or unknown code