Start Your Own SMM Panel on the MrViral API: A Working Walkthrough
From API key to your first programmatic order in about 30 minutes — endpoints, idempotency, error handling, and the pricing math of reselling.
MrViral Team
Engineering
Every large SMM panel you've heard of resells a supplier underneath. MrViral exposes the same API our own dashboard runs on, which means your panel inherits the parts that are hard to build: wallet accounting, supplier failover, automatic refunds, and delivery tracking.
This is the full walkthrough, copy-paste ready.
1. Mint a key
Dashboard → API keys → New key. The plaintext is shown exactly once; we store only a SHA-256 hash. Keys can carry an expiry and can be revoked instantly.
Authorization: Bearer mv_live_xxxxxxxxxxxxxxxxxxxx
Rate limit: 120 requests/minute per key. Order placement is additionally throttled per account.
2. Pull the catalogue
curl -s https://api.mrviral.io/api/catalog/services?platform=instagram \
-H "Authorization: Bearer $KEY"
Each service returns your personalised rate (tier discounts apply to API traffic), min/max bounds, and capability flags (supports_refill, needs_comments, average_time). Cache this for an hour; re-syncing more often buys you nothing.
3. Place an order
curl -s -X POST https://api.mrviral.io/api/orders \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{
"service_id": 42,
"link": "https://instagram.com/customer_handle",
"quantity": 5000,
"wallet_currency": "USD"
}'
Three responses matter:
- 201 — order accepted; you get an
id,status, and the exactwallet_charge. - 402
insufficient_funds— the response includesrequiredandavailableso your panel can prompt a precise top-up. - 422
supplier_rejected— the wallet was never charged (or was instantly refunded); the message is safe to surface to your customer.
Placement is idempotent on our side: if your request dies mid-flight, retry it — a network fault can never double-place or double-charge.
4. Track delivery
Poll GET /api/orders/{id} — you get status, start_count, remains, and a computed progress percentage. Poll every 30–60 seconds while status is pending/processing/in_progress; anything faster is wasted quota.
Terminal states: completed, partial, canceled, failed, refunded. Failures refund your wallet automatically — reconcile with GET /api/wallet/transactions, where every movement carries a unique reference.
5. The pricing math
Reselling margins are a spread on top of your tier rate. A concrete example:
| Rate per 1k followers | |
|---|---|
| Your cost (Elite tier) | $3.47 |
| Typical retail on small panels | $5.50 – $8.00 |
| Your spread | 58% – 130% |
Your tier upgrades automatically from lifetime spend — resold volume counts, so a growing panel's costs fall as it scales. That loop (volume → tier → margin) is the entire business model, and it's automatic.
What to build first
A minimal viable panel is four screens: catalogue with your markup applied, an order form, an order-status page fed by polling, and a wallet page. Everything else — refunds, supplier switching, delivery guarantees — is already underneath you.
Ship the boring version this week. Your customers are buying outcomes, not dashboards.
Keep reading
How the Instagram Algorithm Actually Ranks Reels in 2026
Forget hashtag folklore. Here's what Instagram's ranking systems reward this year, what they quietly punish, and where a well-timed boost fits in.
Buying Followers Without Tanking Your Engagement Rate: The Honest Guide
Bought followers can anchor social proof or wreck your ratios. The difference is arithmetic, pacing, and knowing what each follower type is for.
TikTok's First Hour: Why 60 Minutes Decide Everything
TikTok batch-tests every upload against a small audience before deciding its fate. Here's how the test works and how to walk into it prepared.