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.