SMM Panel API Integration Guide — What You Actually Need (2026)

SMM Panel API Integration Guide — What You Actually Need (2026)

Written by Social Bulk Market Team

Whether you're connecting a reseller panel to a provider, building a custom ordering tool, or automating campaign management — this guide covers the complete SMM panel API integration process. No unnecessary complexity: just what actually works.

🔌
Social Bulk Market API — Connect in 30 MinutesStandard format · Under 200ms response · Full documentation · 500+ connected resellers
Get Your API Key →

Prerequisites Before You Start

  • A registered account on Social Bulk Market (free)
  • Your API key (Settings → API in your dashboard)
  • Basic knowledge of HTTP requests in your language of choice (Python, PHP, JS, etc.)
  • A funded account balance (orders require available balance)

Authentication

Every API request includes your API key as a POST parameter. There are no OAuth flows, token exchanges, or session management — just your key on every request.

Base API Endpoint
https://socialbulkmarket.com/api/v2

All requests:POST method · Content-Type: application/x-www-form-urlencoded · Parameter: key=[your_api_key]
SecurityNever expose your API key in client-side code (JavaScript in a browser). API keys should only be used in server-side code. If your key is compromised, regenerate it immediately from your dashboard Settings → API page.

Step 1 — Fetch the Services List

Start by retrieving the full service catalogue. You'll use the service IDs from this list to place orders.

Request
POST to: https://socialbulkmarket.com/api/v2
Body: key=YOUR_KEY&action=services

Response (array of service objects):
[{
 "service": 1,
 "name": "Instagram Followers [HQ] [30-Day Refill]",
 "type": "Default",
 "category": "Instagram - Followers",
 "rate": "1.80",   (per 1,000 units)
 "min": "100",
 "max": "100000",
 "refill": true,
 "cancel": false
}, ...]

Best practice: Cache this response and refresh every 6–12 hours. The catalogue rarely changes intraday, and fetching it on every order wastes API calls and slows your application.

Step 2 — Place an Order

Once you have the service ID, placing an order requires: your key, the action, service ID, social media link, and quantity.

Request
POST Body: key=YOUR_KEY&action=add&service=1&link=https://instagram.com/username&quantity=1000

Response:
{ "order": 23456789 }

Save the order ID — you'll need it for status checks.

Validation before placing:

  • Quantity must be between the service's min and max values
  • Link must be public and accessible (not a private profile)
  • Your account balance must be sufficient: (quantity ÷ 1000) × rate

Step 3 — Check Order Status

Single order status
POST Body: key=YOUR_KEY&action=status&order=23456789

Response:
{
 "charge": "1.80",
 "start_count": "1423",  (count at time of order)
 "status": "In progress",
 "remains": "456",      (units still to deliver)
 "currency": "USD"
}

Multiple orders (batch check):
POST Body: key=YOUR_KEY&action=status&orders=23456789,23456790,23456791

Possible status values: Pending, In progress, Completed, Partial, Canceled, Processing

Step 4 — Check Account Balance

Request
POST Body: key=YOUR_KEY&action=balance

Response:
{ "balance": "47.23", "currency": "USD" }

Implement a low-balance alert in your application — automatically notify yourself when balance drops below your threshold (e.g., $10) to prevent order failures due to insufficient funds.

Step 5 — Request a Refill

Request
POST Body: key=YOUR_KEY&action=refill&order=23456789

Response:
{ "refill": 9876543 }

Check refill status:
POST Body: key=YOUR_KEY&action=refill_status&refill=9876543

Error Handling

All API errors return a JSON object with an error key:

Common Error Responses
{ "error": "Invalid key" } — wrong or missing API key
{ "error": "Incorrect quantity" } — below min or above max
{ "error": "Not enough funds" } — insufficient balance
{ "error": "Invalid link" } — URL format issue or private account
{ "error": "Service is not available" } — temporary provider outage

Implement error handling for all five cases. For "Service is not available," retry with exponential backoff (wait 30s → 2min → 10min before alerting). For "Not enough funds," trigger your balance alert immediately.

Full Integration Example (Python)

Python — Place Order and Track Status
import requests, time

API_URL = "https://socialbulkmarket.com/api/v2"
API_KEY = "your_key_here"

def place_order(service_id, link, qty):
    r = requests.post(API_URL, data={
        "key": API_KEY, "action": "add",
        "service": service_id,
        "link": link, "quantity": qty
    })
    data = r.json()
    if "error" in data: raise Exception(data["error"])
    return data["order"]

def get_status(order_id):
    r = requests.post(API_URL, data={
        "key": API_KEY, "action": "status",
        "order": order_id
    })
    return r.json()

# Usage
oid = place_order(1, "https://instagram.com/user", 1000)
print(f"Order placed: {oid}")
time.sleep(60)
print(get_status(oid))

Connecting a Reseller Panel (No-Code Path)

If you're using a panel script (Perfect Panel, SMMHeaven, etc.) rather than building a custom integration, the process is even simpler:

  1. Log into your panel admin → API Providers (or Child Panels)
  2. Add new provider: URL = https://socialbulkmarket.com/api/v2, Key = your API key
  3. Click "Sync" or "Import Services" — the full catalogue appears automatically
  4. Set your markup prices on each imported service
  5. Services are now live in your customer-facing panel

See our SMM Panel Provider vs Reseller guide and our SMM Panel API Beginner guide for foundational context.

Frequently Asked Questions

⚡
Full API Documentation Available in DashboardStandard format · PHP/Python/JS examples · Under 200ms · 500+ resellers already integrated
Get API Access →
Back
rn