Integrate our services directly into your platform with our powerful REST API. Fast, reliable, and easy to implement. Build your own growth tool or reseller panel today.
Our API is built on REST principles. It uses standard HTTP response codes, authentication, and verbs. All requests should be sent to the base URL and will return responses in JSON format.
https://smmto.com/api/v2
To authenticate your requests, you must include your unique API key as a `key` parameter in every request. You can find your API key in your account dashboard.
POST https://smmto.com/api/v2
Content-Type: application/json
{
"key": "your-api-key-here",
"action": "services"
}
Keep your API key secret. Do not share it in public repositories, client-side code, or documentation. If compromised, regenerate it immediately.
Place a new order for any social media service available on our platform.
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | Yes | Your unique API key |
| action | string | Yes | "add" |
| service | integer | Yes | Service ID (from Services List) |
| link | string | Yes | Target URL (e.g. Channel link) |
| quantity | integer | Yes | Total quantity to deliver |
Request Example
{
"key": "your-api-key",
"action": "add",
"service": 1,
"link": "https://t.me/yourchannel",
"quantity": 1000
}
Response Example
{
"order": 23501,
"status": "success"
}
Check the status and progress of a previously placed order.
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | Yes | Your API key |
| action | string | Yes | "status" |
| order | integer | Yes | The ID of the order |
{
"charge": "0.5000",
"start_count": "1200",
"status": "In Progress",
"remains": "450",
"currency": "USD"
}
Efficiency is key. Use the bulk endpoint to place up to 100 orders in a single API call.
{
"key": "your-api-key",
"action": "add_bulk",
"orders": [
{ "service": 1, "link": "link_1", "quantity": 100 },
{ "service": 2, "link": "link_2", "quantity": 250 }
]
}
Cancel a pending or in-progress order by order ID.
{
"key": "your-api-key",
"action": "cancel",
"order": 23501
}
Request a refill for eligible orders that dropped below the guaranteed level.
{
"key": "your-api-key",
"action": "refill",
"order": 23501
}
Retrieve the full list of available services, rates, min/max quantities, and metadata.
{
"key": "your-api-key",
"action": "services"
}
The API uses standard HTTP status codes to indicate success or failure.
| Code | Message | Description |
|---|---|---|
| 400 | Invalid request | Missing or invalid parameters |
| 401 | Invalid API key | Authentication failed |
| 404 | Service not found | Invalid service ID |
| 429 | Rate limit exceeded | Too many requests |
| 500 | Internal error | Server-side error |
API requests are limited to 100 requests per minute per API key. Exceeding this limit returns HTTP 429. Contact support for higher throughput on reseller plans.
v2.0 — Unified REST endpoint at /api/v2 with bulk orders, refill status, and improved error responses.
| Parameter | Description |
|---|---|
key |
Your API key |
action |
services |
Example Response
[
{
"service": 1,
"name": "Followers",
"type": "Default",
"category": "First Category",
"rate": "0.90",
"min": "50",
"max": "10000",
"refill": true,
"cancel": true
},
{
"service": 2,
"name": "Comments",
"type": "Custom Comments",
"category": "Second Category",
"rate": "8",
"min": "10",
"max": "1500",
"refill": false,
"cancel": true
}
]
Example Response
{
"order": 23501
}
| Parameter | Description |
|---|---|
key |
Your API key |
action |
status |
order |
Order ID |
Example Response
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
}
| Parameter | Description |
|---|---|
key |
Your API key |
action |
status |
orders |
Order IDs (separated by a comma, up to 100 IDs) |
Example Response
{
"1": {
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
},
"10": {
"error": "Incorrect order ID"
},
"100": {
"charge": "1.44219",
"start_count": "234",
"status": "In progress",
"remains": "10",
"currency": "USD"
}
}
| Parameter | Description |
|---|---|
key |
Your API key |
action |
refill |
order |
Order ID |
Example Response
{
"refill": "1"
}
| Parameter | Description |
|---|---|
key |
Your API key |
action |
refill |
orders |
Order IDs (separated by a comma, up to 100 IDs) |
Example Response
[
{
"order": 1,
"refill": 1
},
{
"order": 2,
"refill": 2
},
{
"order": 3,
"refill": {
"error": "Incorrect order ID"
}
}
]
| Parameter | Description |
|---|---|
key |
Your API key |
action |
refill_status |
refill |
Refill ID |
Example Response
{
"status": "Completed"
}
| Parameter | Description |
|---|---|
key |
Your API key |
action |
refill_status |
refills |
Refill IDs (separated by a comma, up to 100 IDs) |
Example Response
[
{
"refill": 1,
"status": "Completed"
},
{
"refill": 2,
"status": "Rejected"
},
{
"refill": 3,
"status": {
"error": "Refill not found"
}
}
]
| Parameter | Description |
|---|---|
key |
Your API key |
action |
cancel |
orders |
Order IDs (separated by a comma, up to 100 IDs) |
Example Response
[
{
"order": 9,
"cancel": {
"error": "Incorrect order ID"
}
},
{
"order": 2,
"cancel": 1
}
]
| Parameter | Description |
|---|---|
key |
Your API key |
action |
balance |
Example Response
{
"balance": "100.84292",
"currency": "USD"
}