API v2

TokSMM API Documentation

SMM-style API. All requests use POST and return JSON.

Overview

This API is compatible with standard SMM panels. Use your API key from the dashboard.

All parameters are sent in the POST body as form data.

Method: POST
Content-Type: application/x-www-form-urlencoded
Response: JSON

Base URL

Use the same domain as your panel.

https://toksmm.com/api/v2

Authentication

All calls require your API key.

key=YOUR_API_KEY

If the key is missing or invalid, you will receive an error response.

Request template

All requests follow the same structure.

POST https://toksmm.com/api/v2
key=YOUR_API_KEY
action=ACTION_NAME
...other parameters

Example with curl:

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

Available actions

services
add
status
refill
refill_status
cancel
balance

Use the action name in the POST body.

Errors

Errors return JSON with an error field.

{"error":"Missing action"}

HTTP status codes are also used (400, 401, 404).

Service list

Get all active services.

Request data:

action=services

Service types include Default, Comments, Custom Comments, Package, Dripfeed, and Subscriptions.

If a service has a custom form, the API returns a form schema in the service list.

Response:

[
  {
    "service": 1,
    "name": "Followers",
    "type": "Default",
    "category": "TikTok",
    "rate": "0.50000",
    "min": "50",
    "max": "10000",
    "refill": true,
    "cancel": true,
    "form": null
  },
  {
    "service": 2,
    "name": "Comments",
    "type": "Custom Comments",
    "category": "TikTok",
    "rate": "5.00000",
    "min": "10",
    "max": "1500",
    "refill": false,
    "cancel": true,
    "form": {"fields":[{"name":"comments","type":"textarea","required":true}]}
  }
]

Add order (Default)

Required: service, link, quantity.

Optional: runs, interval (for dripfeed services).

Request data:

action=add
service=SERVICE_ID
link=https://tiktok.com/@user
quantity=1000

Optional dripfeed example:

action=add
    service=SERVICE_ID
    link=https://tiktok.com/@user/video
    quantity=1000
    runs=10
    interval=30

Response:

{"order": 23501}

Add order (Comments / Custom Comments)

Provide comments in form or as comments. Quantity is required but will be recalculated from the comments count.

Comments can be separated by commas or new lines.

Request data:

action=add
service=SERVICE_ID
link=https://tiktok.com/@user/video
quantity=1
form={"comments":"hi,hello,good video"}

Compat example with top-level comments:

action=add
service=SERVICE_ID
link=https://tiktok.com/@user/video
quantity=1
comments=hi,hello,good video

Response:

{"order": 23501}

Add order (Package or Custom form)

Use form to send extra fields required by the service.

Request data:

action=add
service=SERVICE_ID
link=https://tiktok.com/@user/video
quantity=1
form={"package":"basic"}

Response:

{"order": 23501}

Order form rules

If a service has a form schema, send the values under form.

You may send form as JSON or send fields as top-level params for compatibility.

form={"fieldA":"value","fieldB":"value"}

Order status

Request data:

action=status
order=ORDER_ID

Response:

{
  "charge": "0.27819",
  "start_count": "3572",
  "status": "Completed",
  "remains": "0",
  "currency": "USD"
}

Multiple orders:

action=status
orders=1,2,3

Response:

{
  "1": {"charge":"0.27819","start_count":"3572","status":"Completed","remains":"0","currency":"USD"},
  "10": {"error":"Incorrect order ID"},
  "100": {"charge":"1.44219","start_count":"234","status":"In progress","remains":"10","currency":"USD"}
}

Refill

Request data:

action=refill
order=ORDER_ID

Response:

{"refill":"1"}

Multiple refills:

action=refill
orders=1,2,3

Response:

[
  {"order":1,"refill":1},
  {"order":2,"refill":2},
  {"order":3,"refill":{"error":"Incorrect order ID"}}
]

Refill status

Request data:

action=refill_status
refill=REFILL_ID

Response:

{"status":"Completed"}

Multiple refill status:

action=refill_status
refills=1,2,3

Response:

[
  {"refill":1,"status":"Completed"},
  {"refill":2,"status":"Rejected"},
  {"refill":3,"status":{"error":"Refill not found"}}
]

Cancel order

Request data:

action=cancel
orders=1,2,3

Response:

[
  {"order":9,"cancel":{"error":"Incorrect order ID"}},
  {"order":2,"cancel":1}
]

Balance

Request data:

action=balance

Response:

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

Notes

All endpoints are POST. Opening /api/v2 in a browser (GET) will return Not Found.

When using form, send a JSON object (stringified) or use top-level fields for compatibility.

For comments services, quantity is derived from the comment count.