Developer Documentation

SMM8 API

Place orders, check status, and pull live pricing programmatically. Build your own reseller panel, automation script, or storefront on top of SMM8, no manual dashboard clicks required.

No Rate Limit Plain JSON Responses Any Programming Language

Get Your API Key →

Jump to a Section

Who Uses This

Built for Automation, Not Just Browsing

The same API powers resellers, in-house automation, and custom storefronts, all through the same published endpoints.

Resellers

Run your own panel on top of SMM8's supply, mark up pricing to your own customers, and route orders through automatically.

Automation Scripts

Schedule and place recurring orders programmatically without touching the dashboard by hand.

Custom Storefronts

Build your own ordering interface, mobile app, or Telegram bot that talks to SMM8 in the background.

How It Works

From API Key to Delivered Order

1
Get Your KeyFrom the Account page
2
Send a RequestPOST with key, action, params
3
Get an Order IDReturned instantly as JSON
4
Poll for StatusCheck progress anytime
Code Examples

Placing an Order, in Your Language

The API is plain HTTP with a JSON response, it isn't tied to any SDK. Here's the same request in a few common languages.

curl -X POST /api/v2 \ -d key=your_api_key \ -d action=add \ -d service=1 \ -d link=https://t.me/yourchannel \ -d quantity=1000
// PHP with cURL $data = [ 'key' => 'your_api_key', 'action' => 'add', 'service' => 1, 'link' => 'https://t.me/yourchannel', 'quantity' => 1000 ]; $ch = curl_init('/api/v2'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); echo $response;
# Python with requests import requests data = { 'key': 'your_api_key', 'action': 'add', 'service': 1, 'link': 'https://t.me/yourchannel', 'quantity': 1000 } response = requests.post('/api/v2', data=data) print(response.json())
// Node.js with axios const axios = require('axios'); const qs = require('querystring'); axios.post('/api/v2', qs.stringify({ key: 'your_api_key', action: 'add', service: 1, link: 'https://t.me/yourchannel', quantity: 1000 })).then(res => console.log(res.data));

API Details

API URL

/api/v2

API Key

Get an API key on the Account page

HTTP Method

POST

Response format

JSON

Example Code

/example.txt

Service list

key

Your API key

action

services

[
    {
        "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
    }
]

Add order

{
    "order": 23501
}

Order status

key

Your API key

action

status

order

Order ID

{
    "charge": "0.27819",
    "start_count": "3572",
    "status": "Partial",
    "remains": "157",
    "currency": "USD"
}

Multiple orders status

key

Your API key

action

status

orders

Order IDs (separated by a comma, up to 100 IDs)

{
    "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"
    }
}

Create refill

key

Your API key

action

refill

order

Order ID

{
    "refill": "1"
}

Create multiple refill

key

Your API key

action

refill

orders

Order IDs (separated by a comma, up to 100 IDs)

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

Get refill status

key

Your API key

action

refill_status

refill

Refill ID

{
    "status": "Completed"
}

Get multiple refill status

key

Your API key

action

refill_status

refills

Refill IDs (separated by a comma, up to 100 IDs)

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

User balance

key

Your API key

action

balance

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

API FAQ

Is there a rate limit on the API?

No, there's no rate limit, you can send as many requests per second as you need.

What programming languages can I use?

Any language that can send an HTTP POST request. The API is plain HTTP with a JSON response, it isn't tied to a specific SDK or library.

Where do I get my API key?

On the Account page, once you're signed in. No separate application process.

Can I check the status of multiple orders at once?

Yes, the status action accepts up to 100 order IDs at a time, separated by commas, in a single request.

Do all services support refill through the API?

Every service on SMM8 includes automatic refill, and refill status can be checked individually or in batches of up to 100 at once.

Can I get custom pricing as a reseller?

Yes, reseller-specific pricing is available on request, contact support to discuss volume.

What happens if I send an invalid order ID?

The response returns an error object for that specific ID instead of failing the whole request, this applies to both single and batch status checks.

Is the API the same for a child panel?

Yes, a child panel runs on the same underlying API structure, just under your own domain and branding.

Ready to Start Building?

Grab your API key and place your first automated order in minutes.

Get Your API Key →