API

Documentation

Endpoint
Send all requests to this URL
POST https://smm.red/api/v2
GET https://smm.red/api/v2

POST is the recommended method. GET is supported for compatibility. Your API token is generated on the Account page.

Authentication
Pass your API token as the key parameter in every request
key=smmred_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx action=balance

If the key is missing or invalid: {"error": "Invalid API key"}

Actions
Supported actions for API V2
balance Get account balance
Request
key=TOKEN&action=balance
Response
{ "balance": "12.345600", "currency": "USD" }
services Get list of available services
Request
key=TOKEN&action=services
Response
[ { "service": 7, "name": "Telegram Followers [Russian - Non Drop - 3 days]", "type": "Default", "category": "Followers", "social_network": "Telegram", "rate": "0.350000", "min": 10, "max": 100000, "refill": false, "cancel": true }, { "service": 12, "name": "Instagram Comments [Mixed - Custom]", "type": "Custom comments", "category": "Comments", "social_network": "Instagram", "rate": "1.200000", "min": 1, "max": 500, "refill": false, "cancel": false }, { "service": 15, "name": "Telegram Poll Votes [Mixed]", "type": "Poll", "category": "Poll Votes", "social_network": "Telegram", "rate": "0.800000", "min": 100, "max": 300000, "refill": false, "cancel": false } ]
add Place a new order

Default

ParameterDescription
servicerequiredService ID from action=services
linkrequiredTarget URL
quantityrequiredOrder quantity (within service min/max)
delayoptionalMinutes until the order should start. Minimum 1. If omitted, the order starts immediately.
Request
key=TOKEN&action=add&service=7&link=https://t.me/example&quantity=1000
Response
{"order": 12345}

Custom comments

For services with type=Custom comments. Quantity is calculated from the number of comment lines. Max comment length: 500 characters.

ParameterDescription
servicerequiredService ID from action=services
linkrequiredTarget URL
commentsrequiredComments list separated by \r\n or \n. Max 500 characters per comment.
delayoptionalMinutes until the order should start. Minimum 1. If omitted, the order starts immediately.
Request
key=TOKEN&action=add&service=12&link=https://instagram.com/p/xxx&comments=Great post!%0ANice photo%0ALove it
Response
{"order": 12345}

Poll

For services with type=Poll. Specify which poll answer to vote for.

ParameterDescription
servicerequiredService ID from action=services
linkrequiredTarget URL
quantityrequiredNumber of votes
answer_numberrequiredAnswer number of the poll, starting from 0
delayoptionalMinutes until the order should start. Minimum 1. If omitted, the order starts immediately.
Request
key=TOKEN&action=add&service=15&link=https://t.me/example&quantity=500&answer_number=0
Response
{"order": 12345}
status Get order status (single or bulk)
ParameterDescription
orderor ordersSingle order ID
ordersor orderComma-separated IDs, max 100
Single
key=TOKEN&action=status&order=12345
Response
{ "charge": "0.350000", "start_count": 541, "status": "In progress", "remains": 800, "currency": "USD" }
Bulk
key=TOKEN&action=status&orders=12345,12346,12347
Response
{ "12345": {"charge": "0.350000", "start_count": 541, "status": "Completed", "remains": 0, "currency": "USD"}, "12346": {"error": "Incorrect order ID"} }

Possible statuses: Pending, Delayed, Processing, In progress, Completed, Partial, Canceled

Delayed
{ "charge": "0.350000", "start_count": 0, "status": "Delayed", "remains": 1000, "currency": "USD", "scheduled_at": "2026-07-30T14:30:00Z", "delay_remaining": 135 }

If the order was created with delay=, its status stays Delayed until the scheduled time arrives. While Delayed, the response also includes scheduled_at (UTC, ISO-8601) and delay_remaining (minutes left, never negative). These two fields are only present for Delayed orders - every other status keeps the response shape shown above.

refill Request order refill
ParameterDescription
orderrequiredOrder ID to refill
Request
key=TOKEN&action=refill&order=12345
Response
{"refill": 1}

Value 1 means the request was accepted and queued. Only available for completed orders with refill support.

cancel Request order cancellation
ParameterDescription
orderrequiredOrder ID to cancel
Request
key=TOKEN&action=cancel&order=12345
Response
{"cancel": 1}

Value 1 means the request was accepted and queued. Only available for services with cancel support.

Error Responses
All errors are returned as JSON with an error key
"Invalid API key"Token missing or incorrect
"Incorrect request"Unknown action or invalid parameters
"Incorrect service ID"Service not found or inactive
"Service not available"Service cannot be ordered via API
"Quantity must be between X and Y"Quantity outside service min/max
"Comments are required for this service"Comments parameter is missing or empty
"Comments count must be between X and Y"Number of comments is outside service min/max
"Comment is too long"One comment exceeds 500 characters
"Answer number is required for this service"Poll answer_number parameter is missing
"Incorrect answer number"answer_number must be 0 or greater
"Insufficient balance"Not enough funds
"Incorrect order ID"Order not found or belongs to another user
"Refill not available"Refill conditions not met
"Cancel not available"Cancel conditions not met