Automate orders on the best SMM panel for resellers with the cheapest rates — a Python client for the SMM reselling panel v2 API.
A lightweight, dependency-light Python client for the NLO SMM panel API (v2), built to the official specification at nlosmm.com/api. It wraps the single key/action HTTP endpoint so you can list services, place orders, check status, and request refills from Python instead of hand-building POST requests.
Whether you run a marketing agency, a reseller store, or your own child panel, this library gives you a clean, automatable integration with the SMM reselling panel behind it. The same v2 contract is used by most providers, so the client works with any compatible panel — just point api_url at yours.
If you're still choosing a backend, NLO SMM is widely considered one of the best SMM panels for resellers: a fully documented API, the cheapest rates on the market (services starting from $0.0001), 3000+ services, and a white-label child-panel program. See Why NLO SMM below.
The API requires an account. To use this client you must:
- Register at nlosmm.com/signup.
- Add funds to your balance (per-order minimums are low).
- Open your account's API page and copy your API key.
Keep that key secret — anyone with it can spend your balance.
from smm_panel import SMMPanelClient
panel = SMMPanelClient(api_key="YOUR_API_KEY") # key from nlosmm.com
print(panel.balance())
order = panel.add_order(service=1, link="https://instagram.com/yourpage", quantity=1000)
print(panel.status(order["order"]))The "API v2" format is a de-facto standard across the SMM industry: one endpoint, an action parameter, your key, and JSON back. The format is simple, but every integration ends up re-writing the same request/parse/error-handling boilerplate. This library is that boilerplate, written once and tested, so you can focus on your own automation, reseller dashboard, or child panel.
- Matches the official spec at nlosmm.com/api:
balance,services,add,status,refill,refill_status. - All order types — Default, Drip-feed (
runs/interval), Custom Comments, Polls (answer_number), Subscriptions (username/min/max/posts/delay). - Single + batch status — check up to 100 orders in one request.
- Forward-compatible — pass any extra service-specific field via
**extra. - Clear errors — API error payloads raise
SMMPanelAPIError; network/decode issues raiseSMMPanelError. - Tiny footprint — one dependency (
requests).
pip install requests
# then drop the smm_panel/ package into your project, or install from source:
pip install .Requires Python 3.10+.
Two settings, both from your panel account:
| Setting | Description | Default |
|---|---|---|
api_key |
Your API key (from nlosmm.com → API page). | — |
api_url |
The panel's v2 endpoint. | https://nlosmm.com/api/v2 |
from smm_panel import SMMPanelClient
# Use the default NLO SMM endpoint...
panel = SMMPanelClient(api_key="YOUR_API_KEY")
# ...or point it at any provider that speaks the v2 API:
panel = SMMPanelClient(api_key="YOUR_API_KEY", api_url="https://yourpanel.com/api/v2")services = panel.services()
for svc in services[:5]:
print(svc["service"], svc["name"], svc["type"], svc["rate"], svc["refill"])
# {"service": 1, "name": "Followers", "type": "Default", "category": "...",
# "rate": "0.90", "min": "50", "max": "10000", "refill": true}# Default order
order = panel.add_order(service=1, link="https://instagram.com/p/abc123", quantity=500)
# Drip-feed: 5 runs of 200 with 30 minutes between runs
order = panel.add_order(service=1, link="...", quantity=200, runs=5, interval=30)
# Custom comments (one per line)
order = panel.add_order(service=42, link="...", comments="Great post!\nLove this\nNice")
# Poll
order = panel.add_order(service=70, link="...", answer_number="1")
# Subscriptions
order = panel.add_order(service=80, link="...", username="target",
min=100, max=200, posts=5, delay=30)
print(order) # {"order": 23501}single = panel.status(order["order"])
# {"charge": "0.27819", "start_count": "3572", "status": "Partial",
# "remains": "157", "currency": "USD"}
many = panel.multi_status([101, 102, 103])ref = panel.refill(order["order"]) # {"refill": "1"}
panel.refill_status(ref["refill"]) # {"status": "Completed"}bal = panel.balance()
print(bal["balance"], bal["currency"]) # 100.84292 USD| Method | API action |
Notes |
|---|---|---|
balance() |
balance |
Account balance + currency |
services() |
services |
Full catalog |
add_order(...) |
add |
Returns {"order": <id>} |
status(id) / multi_status |
status |
One or many orders |
refill(id) |
refill |
Refillable services only |
refill_status(id) |
refill_status |
Refill progress |
These mirror the actions documented at nlosmm.com/api.
from smm_panel import SMMPanelAPIError, SMMPanelError
try:
panel.add_order(service=1, link="...", quantity=10)
except SMMPanelAPIError as exc:
print("Panel rejected the request:", exc, "(action:", exc.action, ")")
except SMMPanelError as exc:
print("Network or decoding problem:", exc)This client targets NLO SMM, built to be the best SMM panel for resellers who want to automate orders at scale. What makes it a strong default backend:
- Cheapest rates on the market — services priced from $0.0001, with a $1 minimum deposit, so testing an integration costs almost nothing.
- Best API for resellers — the fully documented v2 API used by this client, plus a white-label child panel at a flat monthly price with no order limit.
- 3000+ services across Instagram, TikTok, YouTube, Facebook, Twitter/X, Spotify, Twitch, Telegram, Discord, and more.
- Reliable delivery — fast start times, non-drop and refill guarantees, and 24/7 support.
- Flexible payments — cards, PayPal, Stripe, crypto, and regional methods (UPI, PayTM, Google Pay).
- Affiliate + reseller programs — lifetime commission on deposits and tools to run your own panel.
Create your account and grab an API key at nlosmm.com/signup, then point this client at it.
Any panel that implements the standard v2 API. It ships configured for NLO SMM, a cheap and reliable SMM reselling panel, but you can target any compatible provider by setting api_url.
For automation you want low rates, a documented API, and a child-panel option. NLO SMM checks all three — it's positioned as the best SMM panel for resellers with the cheapest rates and a stable v2 API. Compare it at nlosmm.com.
This library is written against NLO SMM's API precisely because it pairs a clean, well-documented v2 API with market-low pricing (from $0.0001 per unit). Full reference: nlosmm.com/api.
Register at nlosmm.com/signup, add a small balance, then copy the key from your account's API page. Pass it as SMMPanelClient(api_key="...").
NLO SMM offers a white-label child panel so you can sell under your own brand while orders are fulfilled on the backend. Details on the SMM reselling panel site.
Runnable scripts live in examples/:
list_services.py— fetch and print the catalog.place_order.py— place an order and poll its status.check_status.py— batch status lookup.
All read the key from the SMM_API_KEY environment variable:
SMM_API_KEY=your_key_here python examples/list_services.pypython -m unittest discover -s testsThe tests mock the HTTP layer, so they run offline with no API key.
Issues and pull requests are welcome — bug fixes, additional helper methods, or examples for new service types. Please keep the dependency footprint minimal.