How to Use Panel Follows: A Complete Step-by-Step Guide
A full walkthrough of Panel Follows: sign up, add funds, place orders, read statuses, request refills, and wire the reseller API into your own system.
Most panel tutorials show you where the buttons are and stop there. That is the easy half. The half that costs people money is the part nobody writes down: the field labelled "Quantity" does not always mean what you think, the price shown as "/ 1,000" is sometimes the price of the whole package, and the "Refill" button disappears for a full day after you press it once. None of that is a bug. It is just behaviour you have to learn, and you would rather learn it here than after a mis-priced order.
This guide walks through Panel Follows the way you will actually meet it: create an account, top up, place one careful order, read the status honestly, and then, if you are reselling, move the whole thing onto the API. Every button name below is the exact English label you will see on screen, in quotes. Where the panel does not check something for you, this guide says so plainly instead of pretending there is a safety net. It will not quote a rate or promise a delivery time either, because both are configured per service and both change; whatever the panel shows next to the service you selected is the number that counts.
What This Panel Does, and What It Will Not Do
Panel Follows is four things stacked together: a catalogue of social media services, a prepaid wallet, an order pipeline, and a relay to the providers who fulfil the work. You put money into the wallet, you spend it on a service, the panel forwards the order and tracks it until it closes.
Be clear-eyed about what you are buying. Purchased followers, likes, views, and comments are delivered engagement. They are not fans who read your captions, and they will not become customers because a counter went up. They move numbers, and numbers change how a page looks to a first-time visitor. That is the honest ceiling. If you want the numbers to mean something they have to sit on top of content people actually want, which is why the services catalogue is the tool and not the strategy.
Four structural facts worth knowing on day one: all internal accounting is in USD, and displaying prices in TRY or EUR is conversion for display only; every dashboard page is no-indexed, so nothing behind your login reaches search results; any dashboard address bounces you to sign-in if you are not logged in; and balances are held to four decimal places, so the amount shown is exactly the amount deducted. If the concept itself is new to you, what an SMM panel is covers the model.
Step 1: Create an Account and Sign In
Registration lives at the sign-up page and takes under a minute.
- If Google sign-in is switched on, the first thing on the form is a "Continue with Google" button with an "or" divider under it. Use it and you skip password creation entirely. If you do not see the button, that method is simply not enabled, and the email form below it is your route.
- Fill in "Name", "Email", and "Password".
- Your password must be at least 8 characters. Anything shorter is rejected with "Password must be at least 8 characters." on the client and again on the server, so there is no way around it.
- If captcha protection is on, a verification widget appears and the submit button stays disabled until you complete it. The warning text is "Please complete the captcha verification."
- Press "Sign up". On success you get "Your account has been created!" and land straight in the dashboard.
- If you arrived through an invite link carrying a
?ref=code, that referral is attached automatically at this moment. There is nothing to type.
A verification email goes out the second your account is created, but verification is not compulsory. You can add funds and order without ever clicking it. Your account page will simply carry a "Not verified" badge instead of "Verified". Verify anyway: it is the address password resets and order notifications go to.
Signing in later is the same shape: "Continue with Google" if enabled, otherwise "Email" plus "Password" and "Sign in". Sign-in, sign-up, and two-factor verification are each rate limited to five attempts per minute, so wait rather than hammering the button. A forgotten password goes through "Forgot password?", then "Send reset link", then the emailed link takes you to "New password", "Confirm password", and "Update password".
One trap here produces a genuinely confusing error. Accounts are tied to the panel they were created on: a customer of somebody's white-label child panel can only sign in on that panel's own domain, and a main-panel account only works on the main domain. Sign in at the wrong address and the message is the ordinary wrong-password error, with no hint that the domain is the problem. If your password is definitely right, check the address bar first.
Step 2: Learn the Dashboard Map
The left-hand menu is short, and knowing what each entry is for saves you clicking around later. On desktop, in order:
| Menu item | What the page is for |
|---|---|
| "New Order" | The main order form. Platform, category, service, link, quantity, submit. |
| "Mass order" | Many orders at once from a single text box, one per line. |
| "My Orders" | Your recent orders with status, progress, and the "Refill" and "Cancel" buttons. |
| "Subscriptions" | Recurring automatic orders that the panel re-places for you on a timer. |
| "My reviews" | Rate completed orders. Reviews are checked before they go live. |
| "Add funds" | Top up your balance. |
| "Refer & earn" | Your referral code, invite link, and commission history. |
| "Services" | The public catalogue, the same one visitors browse. |
| "Support" | Open and track support tickets. |
| "Account & Security" | Profile, password, two-factor authentication. |
| "API" | Your reseller API key, endpoints, and action reference. |
| "My panel" | Only appears if you own a child panel. |
Below those sit three selectors, for language, currency, and theme, plus "Sign out". On a phone the bottom bar carries five tabs, "Order", "Orders", "Funds", "Support", and "Account", and everything else moves into the expandable menu. Nothing is missing on mobile, it is one tap further away.
The order page also has a right-hand column showing "Balance", "Live rate", and a "Recent orders" box with a "View all" link. That balance figure is the one to glance at before you submit anything. And if you are a customer on somebody's white-label panel rather than the main one, "Refer & earn" and "My reviews" are hidden from your menu by design.
Step 3: Add Funds to Your Balance
The panel is strictly prepaid. There is no ordering on credit, so the wallet comes first. Open "Add funds".
- The page opens with a "Current balance" bar at the top, so you always know where you stand.
- Choose an amount under "Amount (USD)". There are preset buttons for $10, $25, $50, $100, $250, and $500, plus a free-entry field underneath if you want something else. The default is 50.
- The minimum is stated on the page as "Minimum 1 USD." Custom payment rails can set their own higher minimum, in which case the note changes to that method's own figure. The ceiling on any single deposit is 100,000 USD.
- If a deposit bonus is running, a "Deposit bonus" box appears listing the tiers and showing exactly what you will end up with, in the form "+{bonus} bonus · {total} total balance".
- If more than one method is switched on, pick one under "Payment method". Each entry shows its name, the processor behind it, and the card or crypto logos it accepts.
- Press the button for that method and complete the payment.
Here is how the built-in methods behave. Which of them is live at any moment depends on configuration, so treat this as the map rather than the menu:
| Method | Button you press | How it runs | Credited |
|---|---|---|---|
| Card via Stripe | "Pay by card" | Full-page redirect to Stripe Checkout. Note on screen: "Your card details are processed on Stripe's secure page." | Automatically, on the payment webhook |
| Cryptocurrency via Cryptomus | "Pay with Cryptomus" | Redirect to the Cryptomus payment page. Note: "Pay with crypto; once confirmed it's added to your balance automatically." | Automatically, once the payment confirms |
| Card via PayTR | "Pay with PayTR" | Asks for a "Mobile phone" number in 5XX XXX XX XX form, at least 10 digits, then redirects at top level |
Automatically |
| Bank transfer via PayTR | "Pay by bank transfer" | Opens the PayTR form in a frame, with a "Back" button to step out | Automatically, once PayTR approves |
| Manual bank transfer | "Report payment" | You transfer, then enter a "Transfer reference / note" | Manually, after an admin approves |
| Custom rails | "Report payment" | Same reporting flow, with that rail's own minimum, bonus, or fee | Manually, after approval |
For a global audience, card and crypto are the two that travel. Card is the shortest path if you are used to ordinary online checkout, and crypto ignores borders entirely, which is why the crypto payment page exists as its own explanation. The bank-transfer options are regional by nature: which of them you see depends on where the panel is serving you and what has been enabled there, so if your region's usual method is not in the list, use card or crypto rather than waiting for it to appear. If nothing at all is enabled you will see "No active payment method right now."
On timing, card, crypto, and PayTR credit automatically as soon as the payment provider confirms, and the interface's "within a few minutes" is the honest answer because the gap belongs to the provider, not the panel. Manual and custom rails wait for a human to approve, so plan around that if you are topping up against a deadline. Returning from a hosted payment page you will get either "Payment received. Your balance will be credited within a few minutes." or "Payment could not be completed. You can try again or choose another payment method."
What actually lands is your deposit, plus any tier bonus, plus any coupon or method bonus, minus any method fee, never below zero. If somebody referred you, they separately earn 5% of your gross deposit as balance. Child panel customers get neither tier bonuses nor referral commission. Deposits are rate limited to ten requests per minute, and manual payment reports to five.
Step 4: Place Your First Order
Open "New Order". The form is a funnel: platform, then category, then service, then the details that service needs.
- Pick a platform from the button grid at the top. There is an "All" button, then the individual platforms, then "Other". Only the first eleven are shown; press "+{count} platforms" to reveal the rest and "Show less" to collapse them again. A green "New" badge means services were added to that platform in the last fortnight.
- Narrow down with the "Search services…" box. While it has text in it, the category lock loosens and the search runs across the whole platform rather than only inside the selected category. The "Favorites" button next to it is disabled until you have favourites, tooltipped "No favorite services yet. Use the heart under the selected service to add one.", and favourites mode ignores the platform and category filters entirely.
- Choose a "Category". There is no "all categories" option here; a concrete category is always selected. Categories from the main provider are grouped at the top with a "Provider" badge.
- Choose a "Service". Each row shows the category icon, the service name, its catalogue number, and its price with "/ 1000" on the right. Note that catalogue number: it is the ID you will use for mass orders and for the API.
- Four summary boxes then appear: "Price per 1,000", "Min - Max quantity", "Average time", and a favourite toggle reading "Add to favorites" or "Remove from favorites". With no history yet the time box reads "Varies", and the tooltip calls it the "Average completion time of orders for this service", which is a historical average, not a promise.
- If the service has one, a "Description" box loads underneath in your language. Read it. Service-specific rules, such as whether the account must be public or which link format is expected, live there and nowhere else.
- Paste the target into "Link". The placeholder
https://...is literal: the server only accepts links starting withhttp://orhttps://, up to 2,048 characters, so a bareinstagram.com/nameis rejected. The one exception is subscription-type services, where the field becomes "Username / profile link". - Enter "Quantity", within the min and max shown in the summary box.
- If the service supports it, a "Drip-feed" checkbox appears. Read the next-but-one section before you tick it.
- Check the "Total" row, which recalculates live as you type.
- Press "Place order". On success you get "Order placed!", the link and comment fields clear, and the page refreshes.
You can place up to twenty orders a minute through the form. If you need more throughput than that, you want mass order or the API.
Reading the Price Box: Per-1,000 Rates and Flat Packages
This is the single most expensive misreading available in the panel, so it gets its own section.
For an ordinary service the rate is per thousand units and the arithmetic is what you expect: the rate divided by 1,000, multiplied by your quantity. Ask for 2,500 units at $1.20 per thousand and you pay $3.00. For a flat-priced service the rate is the price of the whole thing. These are package services, identifiable because the maximum quantity is 1, and the quantity field is fixed while the total is simply the rate.
The trap is that the interface does not change its labels for flat-priced services. The summary box still says "Price per 1,000" and the service picker still shows "/ 1000" next to the number. So a $22 package looks, at a glance, like $22 per thousand units, which reads as roughly two cents for what you are buying. It is not. You are seeing the whole price.
The reliable check takes two seconds. Look at "Min - Max quantity" first: if the maximum is 1, you are on a package, the quantity is fixed, and the number in the price box is the full charge rather than a rate. Then confirm against the "Total" row before submitting, because that row always shows the real number regardless of how the rate above it is labelled.
See live pricing in the panel
Unit prices for follower, like, view and engagement services are listed live. Registration is free and you can browse the list before adding any balance.
Drip-Feed: "Quantity" Becomes Per Run, Not the Total
Drip-feed splits one order into several smaller deliveries spaced out over time. When the "Drip-feed" box is ticked, two more fields appear: "Runs", which accepts 2 to 1000, and "Interval (min)", which accepts 0 and up.
Here is the part that catches people. Ticking the box changes what the quantity field means. The label switches to "Per run" and the hint under the box says it outright: "The total is split into runs and delivered at the interval you set. Quantity is the amount per run." Your total delivery becomes quantity multiplied by runs, and the charge is calculated on that total. A "Total delivery" line appears specifically so you can see the real figure.
So 1,000 with drip-feed off is 1,000 units. The same 1,000 with 5 runs is 5,000 units, at five times the price. If you meant 1,000 spread over five deliveries, enter 200 with 5 runs, not 1,000 with 5 runs. Minimum and maximum limits are checked against the per-run amount, not the total, so the form will happily accept a number that multiplies into five times your intended spend. Watch the "Total delivery" line and the "Total" row, in that order.
There is a second, subtler catch. The checkbox is rendered whenever the service is flagged as supporting drip-feed, but it only actually functions on standard services. On the specialised types covered in the next section, the box appears and can be ticked, yet the runs and interval are never sent to the provider. Price and delivery are unchanged, so nothing warns you. If your service asks for comments, usernames, hashtags, poll options, or any other extra field, assume the drip-feed box does nothing.
And be blunt about the related myth: spacing delivery out is a scheduling choice, not a safety mechanism. It changes when things arrive, nothing more. The full argument is in drip-feed and auto services.
Service Types and the Fields They Ask For
Most services want a link and a quantity. A meaningful minority want something else, and the form rebuilds itself around the service you picked. There are fifteen distinct behaviours. Knowing which one you are in tells you where your quantity is coming from and whether drip-feed will do anything.
| Service type | Fields it asks for, in order | Where the quantity comes from | Drip-feed |
|---|---|---|---|
| Standard | "Link", "Quantity" | What you type | Yes, if the service supports it |
| Custom comments | "Link", "Comments" | Number of comment lines; there is no quantity field | No |
| Subscriptions | "Username / profile link", "Min per post", "Max per post", "Posts" | Max per post × posts, charged worst case | No |
| Package | "Link" only | Fixed at the service minimum | No |
| Comment likes | "Link", "Quantity", "Username" | What you type | No |
| Comment replies | "Link", "Username", "Comments" | Number of comment lines | No |
| Poll | "Link", "Quantity", "Poll answer #" | What you type | No |
| Mentions | "Link", "Quantity", "Username" | What you type | No |
| Mentions from user followers | "Link", "Quantity", "Username" | What you type | No |
| Mentions from a custom list | "Link", "Usernames" | Number of lines | No |
| Mentions by hashtag | "Link", "Quantity", "Hashtag" | What you type | No |
| Mentions by hashtags | "Link", "Quantity", "Usernames", "Hashtags" | What you type | No |
| Mentions from media likers | "Link", "Quantity", "Media link" | What you type | No |
| Group invites | "Link", "Quantity", "Groups" | What you type | No |
| SEO | "Link", "Quantity", "Keywords" | What you type | No |
The extra fields carry their own hints, and the hints tell you the exact format expected. The multi-line boxes are "Comments" ("One comment per line. Quantity = number of comments."), "Usernames" ("One username per line"), "Hashtags" ("One hashtag per line"), "Groups" ("One group link/name per line"), and "Keywords" ("One keyword per line"). The single-line fields are "Username" ("Target/owner username (without @)"), "Hashtag" ("Single hashtag without #"), and "Media link" ("Post link whose likers are pulled"). "Poll answer #" takes digits only, hinted as "Option number to vote (1, 2, ...)".
Three validation rules to save you a rejected submission. Every extra field a service asks for is mandatory; leaving one blank fails the order. The comments field accepts between 1 and 10,000 lines and silently discards blank lines, so your real quantity is the number of non-empty lines. And for the list-driven types, where quantity comes from your line count, the service's minimum and maximum are not enforced at all, which means a two-line paste is accepted even on a service that normally starts at 100.
Subscriptions: Two Different Features, One Word
The panel uses the word "subscription" for two unrelated things, and confusing them is a reliable way to buy the wrong thing.
The first is the "Subscriptions" page in the menu, which is the panel's own recurring order scheduler. It re-places an ordinary order on a timer, from your balance, on our clock. To set one up:
- Open "Subscriptions", described on the page as "Create recurring automatic orders."
- Pick a "Service", paste a "Link", set a "Quantity".
- Set "Interval (hours)", from 1 to 720.
- Set "Runs left" to stop after a fixed number of repeats, or leave it blank for "Unlimited".
- Press "Create subscription" and you get "Subscription created."
Each entry then shows as "Active" or "Paused" with its "Next run", plus "Toggle" to pause or resume and "Delete" to remove it.
The second meaning is a service type, the auto-views and auto-likes family, where the provider watches an account and delivers to new posts as they appear. You buy it once on the order form, and it is not managed from the "Subscriptions" page at all:
- Select the service. The link field becomes "Username / profile link", hinted as "@username or profile link (e.g. t.me/channel, instagram.com/name)".
- Set "Min per post" and "Max per post", the range delivered to each new post.
- Set "Posts", how many upcoming posts are covered, from 1 to 100.
- The note under the field is the important one: "Future posts get it automatically (min-max range per post)." Posts that already exist are not touched.
Two gotchas. You are charged for the worst case, max per post multiplied by the number of posts, taken upfront, so a generous maximum is a generous bill whether or not it is used. And if your minimum exceeds your maximum, the submit button simply goes inert with no error message, which looks like a broken page but is a rejected input.
The username field is forgiving about format and strict about type. It accepts @name, t.me/channel, instagram.com/name, or a full URL, and strips everything down to the final segment. What it rejects is anything private: private channel links, invite links, values with a slash still in them, or anything outside letters, numbers, dots, and underscores. The message is "Enter a valid public username (no private/invite links)."
Mass Order: Many Orders From One Box
"Mass order" exists for the case where you have a list. It takes one order per line in a fixed format, described on the page as "Each line: serviceId|link|quantity" with the example "12|https://example.com/profile|1000".
- Get the service IDs. These are the catalogue numbers shown next to each service name on the order form, not any internal identifier. The page has a "Service list" link so you can look them up without leaving.
- Paste your lines, one order per line, pipe-separated, no spaces around the pipes.
- The form counts as you type, showing "{count} valid lines" and, if anything is malformed, "{count} invalid lines" with the offending line numbers so you can fix them in place.
- Check "Total quantity" and "Estimated total".
- Press "Place orders". You will get back "{count} orders placed" and, if some failed, "{count} lines failed".
The limits are 100 orders per submission and five submissions per minute. More important than the limits: mass order only supports the standard flow. There is no way to pass comments, usernames, hashtags, poll numbers, or drip-feed settings through it. If your service needs an extra field, it has to go through the order form or the API.
Tracking Orders and What Each Status Means
"My Orders" shows your most recent fifty orders. Above the table there is a "Search orders" box that matches on service name, link, or order number, a "Newest" and "Oldest" sort toggle, and status chips with live counts.
Each row carries the order number, the service name with the target link and a "Copy link" button, the quantity with "Start" and "Remains" underneath it, the amount charged, the status, and the date on wider screens. Those two small numbers matter: "Start" is the counter value when the provider began, and "Remains" is how much has not been delivered yet. That is your evidence when something looks wrong.
| Status | What it actually means |
|---|---|
| "Pending" | Created and paid for, but not yet accepted by a provider. Also covers manual services and orders where the provider returned an error. |
| "In progress" | The provider accepted it and is working on it. |
| "Completed" | Fully delivered. The completion time feeds back into that service's average. |
| "Partial" | Delivered in part. The undelivered share is refunded automatically, in proportion to what is left. |
| "Canceled" | Cancelled. The full amount charged is refunded. |
| "Refunded" | The provider returned a refund. |
| "Failed" | The order did not go through. |
Statuses are derived from what the provider reports, so an order can move back and forth through "Pending" and "In progress" before it settles. Two extra badges may appear on a row: "Request pending" means a cancellation is waiting, on an admin or on the provider's answer, and "Refill in progress" means a refill was requested or started within the last day. At the end of each row you may also see "Review", on completed orders you have not reviewed yet, and a lifebuoy icon labelled "Get support", which opens a ticket already linked to that order.
One behaviour to know about: an order sitting at "Pending" for an unusually long time may be stuck on a provider-side error rather than in a queue. In that situation the money stays deducted and the order does not self-cancel, because a retry is usually the right fix rather than a refund. You cannot resolve it from your side, so open a ticket and reference the order number.
Refill and Cancellation Without Waiting for an Admin
Both of these used to route through support. They no longer do. When the order has a provider record behind it, the request goes straight to that provider and no human approval is involved.
Requesting a refill
The "Refill" button appears at the end of an order row only when three things are true at once: the order is "Completed", the service is flagged as refillable, and there is no refill already pending or started in the last 24 hours.
Press it and one of two things happens. With a provider record behind the order, the request goes directly to the provider and you get "Refill sent to the provider." On a manual order it becomes a request for an admin, with "Refill request sent, awaiting admin approval."
The 24-hour cooldown is the part that confuses people. Once used, the button vanishes from the row and a "Refill in progress" badge takes its place. It has not broken and your order is not ineligible, it is locked for a day. Trying again early gives "A refill was started for this order recently, please try again later." You may also meet "This service does not support refill." and "Refill couldn't be started right now, please try again later."
There is also automatic refill: a scheduled job checks completed refillable orders finished within the last 30 days and starts a refill by itself if the provider reports a shortfall, under the same cooldown. So if you spot a drop on a refillable service, it is often worth waiting a cycle before pressing anything.
Refill is not a guarantee against drops, and on services without the refill flag it does not exist at all: a drop after completion is neither made good nor refunded. That is why the flag matters when you are choosing between two similar services. Why followers drop and how refills work explains the mechanics, and follower quality covers what you are actually comparing when one service costs three times another.
Cancelling an order
The red "Cancel" button appears when the order is "Pending" or "In progress", the service is flagged as cancellable, and no cancellation is already pending. Not every service can be cancelled, and that is a property of the service, not of your account.
- Press "Cancel". Your browser asks "Are you sure you want to cancel this order?"
- If the order has a provider record, the cancellation goes straight to the provider and you get "Cancellation sent to the provider. You'll be refunded once the provider cancels it."
- If the provider refuses, nothing is refunded and the order carries on, with the message "Cancellation could not be processed right now, please open a support ticket."
- If the provider accepts, the refund is applied automatically on the next status sync, in full for a cancellation or proportionally if it went partial.
- For manual orders with no provider record, the request goes to an admin and you get "Cancel request sent, awaiting admin approval."
Other messages: "This service does not support cancellation.", "This order cannot be canceled.", and "A request is already pending for this order."
Both actions also have a shortcut through support, described next.
Test this on one post before you scale
The cheapest way to check the logic above is a small order on a single post, then compare the outcome against your own Insights data.
Opening a Support Ticket
"Support" opens the tickets page, headed "How can we help?" with the note "Pick a topic; order-related requests get resolved faster."
- Pick a "Topic". There are seven.
- If the topic is order-related, a "Related order" picker appears, with entries formatted as order number, service name, and status.
- Optionally set a "Subject (optional)". Left blank, one is generated for you.
- Write your "Message", up to 5,000 characters. The placeholder changes with the topic and is a decent prompt for what to include.
- Press "Send". You get "Ticket created." and land on the ticket thread.
The seven topics are "Order issue" (wrong link, stuck, never started), "Speed up order", "Refill", "Cancel order", "Payment / balance", "API", and "Other". The order picker appears on the first four, and it is compulsory on "Speed up order", "Refill", and "Cancel order". Leave a required order unselected and you get "Please select the related order." If you have never ordered, the picker reads "You don't have any orders yet."
The refill and cancel topics are wired to shortcuts. Choose "Refill" and pick an eligible order and a "One-click refill request" box appears with a "Send refill request" button, doing exactly what the orders-page button does without you writing anything. The same applies to "Cancel order" and "Send cancel request". If the service does not support the action you see "This service does not offer refill, but you can still write to us below." or the cancel equivalent, and can carry on with a normal message. If something is already queued: "A request for this order is already awaiting approval. You can track it on the Orders page."
Inside a ticket, messages are labelled "You" and "Support team". Reply through the "Your reply" box and the "Reply" button, or end it with "Close". A closed ticket shows "This ticket is closed." with a "Reopen" button. Tickets are listed as "Open", "Answered", or "Closed" under "Your tickets".
The Reseller API: Your Key and Your First Call
If you are reselling, the panel interface is a fallback and the API is the product. It is a standard reseller API, so if you have integrated with this shape of endpoint before, everything below will look familiar and your existing client code will mostly work with a changed base URL and key.
Get your key first:
- Open "API" in the menu, introduced as "Standard reseller API. Fetch services and place orders with the key below."
- In the "API key" card, press "Generate key". If you already have one the button reads "Regenerate", with the warning "Regenerating invalidates the old key." That is not a soft warning: the old key stops working immediately, so rotate it when you can redeploy, not mid-shift.
- Press "Copy". It is a 64-character hex string.
- Store it as a server-side secret. The page states the rule plainly: "Every request is sent with a 'key' parameter in the POST body. Keep your key secret; regenerate it immediately if leaked." Because the key travels in the request body, it must never appear in browser-side code.
The transport rules:
- Endpoint.
POST https://your-panel-domain/api/v2. A Turkish variant at/api/v2/trreturns service names, category names, statuses, and error messages in Turkish. The same key works on both. Technical fields stay English on both:type,currency(always USD), andrefill_status. - Format.
application/x-www-form-urlencodedPOST bodies, as the page describes: "Requests are POSTed as application/x-www-form-urlencoded (form-data); responses are JSON." A JSON body or a GET query string is also accepted, handy for a quick browser test, but form-encoded POST is what to build against. - Rate limit. 240 requests per minute per key and 300 per minute per IP. Exceed either and you get HTTP 429 with an error payload rather than a silent drop. Build a small queue rather than a retry storm; a polling loop over a few hundred orders hits the per-key limit long before the per-IP one.
Your first call, the one that proves the key works:
curl -X POST https://your-panel-domain/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=balance"
That returns your balance and currency. Once it answers, pull the catalogue with action=services and cache it. Service IDs are stable, prices are not: rates track provider costs and change on a schedule, so a nightly refresh is the minimum and re-reading the rate before you quote a customer is better. The commercial side is covered in the reseller panel overview and starting an SMM reseller business.
Reseller API Actions and Parameters
Seven actions cover the whole surface. Every request carries key and action; the rest is per action.
| action | Parameters | What it does |
|---|---|---|
services |
key, action |
Lists every active service with id, name, category, rate, and min/max |
add |
key, action, service, link, quantity, optional runs and interval |
Creates an order. service is the catalogue number |
status |
key, action, order or orders |
Order status, single or comma-separated list |
balance |
key, action |
Your balance and currency |
refill |
key, action, order or orders |
Requests a refill |
refill_status |
key, action, refill or refills |
Checks a refill's progress |
cancel |
key, action, orders |
Cancels orders, comma-separated |
A standard order:
curl -X POST https://your-panel-domain/api/v2 \
-d "key=YOUR_API_KEY" \
-d "action=add" \
-d "service=1" \
-d "link=https://instagram.com/username" \
-d "quantity=1000"
The success response is the order ID and nothing else, { "order": 23501 }. Errors come back in the same envelope with an error key instead, { "error": "Incorrect data" }. So your client's first job on every response is to check for error before assuming a result; there is no separate status-code convention to lean on beyond the 429 for rate limiting.
The fields you get back are worth planning your database around:
| Call | Fields returned |
|---|---|
services |
service, name, type, category, rate, min, max, refill, cancel, dripfeed |
status |
charge, start_count, status, remains, currency |
refill |
{ "refill": 55 } |
cancel |
[{ "order": 123, "cancel": 1 }], or {"order":123,"cancel":{"error":"..."}} per order |
Note the refill, cancel, and dripfeed booleans on services. Those flags decide whether the corresponding action will work later, so store them alongside the service and use them to decide what to offer your own customers. A refill on a service without the flag returns an error and there is no way to talk it into working. For status polling, orders with a comma-separated list is far kinder than one call per order: batches of 50 to 100 IDs keep a large book in sync well inside the rate limit.
Reseller API: Special Types, Errors, and Going Live
The add action handles the specialised service types too, using the same parameter names as the form fields. This is what the panel's own type table maps onto:
| Service type | Extra parameters on add |
|---|---|
| Custom comments | comments (newline-separated) |
| Comment likes, mentions, mentions from followers | username |
| Comment replies | username, comments |
| Mentions from a custom list | usernames |
| Mentions by hashtag | hashtag |
| Mentions by hashtags | usernames, hashtags |
| Mentions from media likers | media |
| Poll | answer_number |
| Group invites | groups |
| SEO | keywords |
| Subscriptions | username, posts, min, max |
Read type from the services response and branch on it. If you build your integration assuming everything is link-plus-quantity, the specialised services will fail with a data error and you will be debugging the wrong layer.
Three behavioural differences between the API and the panel interface that will bite an integrator:
- The in-panel duplicate block does not apply to API orders. In the interface, ordering the same service on the same link while an earlier order is still running is refused outright; through the API that check is not run. The provider's own lock still applies, and it is stricter, because it locks the link regardless of which service you ordered. When it triggers, the order is cancelled and your balance is refunded automatically. Guard against same-link orders on your side, or you will see orders appear and immediately cancel themselves.
- Account state produces specific errors. A banned account gets "Account is banned", a suspended child-panel customer gets "Account is suspended". Neither is retryable, so surface it rather than looping.
- Cancel and refill are still gated by service flags, exactly as in the interface. The API responds "Cancel is not available for this service" or "Refill is not available for this service", with no override.
A practical order of work for a new integration:
- Call
balanceto confirm authentication. - Call
services, store the whole response includingtype,refill,cancel, anddripfeed, and refresh it on a schedule. - Implement
addfor the standard type first, then branch ontypefor the specialised ones. - Implement batched
statuspolling, and map the seven statuses onto whatever your own system uses. - Implement
cancelandrefillbehind the service flags rather than exposing them for every service. - Handle 429 with a backoff, and treat every response as potentially carrying
error.
The full endpoint reference is also on the API page, and if you are integrating on behalf of clients rather than a shopfront, the agency page covers that shape of use.
Running a White-Label Child Panel
A child panel is your own branded panel on your own domain, with your own customers and your own payment accounts. It is a prepaid reseller arrangement: your customers pay you directly, and we deduct the base cost of each of their orders from your balance with us. Your markup stays with you from the start because their money never passes through us. To apply, open "My panel" and fill in the application card:
- "Panel name", between 2 and 100 characters.
- "Domain", for example
panel.example.com. The hint is explicit: "A domain or subdomain you own. You will point its DNS A record to our server." - "Markup (×)", between 1 and 10. The default is 1.200 and a live preview shows "{value} = {percent}% above the list price". Out of range you get "Markup must be between 1 and 10."
- Press "Apply". You get "Your request was received." and then "Your application is awaiting admin approval; once approved, your panel goes live automatically."
If the domain is already in use you will see "This domain is already registered to another panel."
Once approved, the panel page becomes your control room:
- "Reseller status" shows "Your balance with us", "Monthly reseller fee", "Next charge", "Order base cost (total)", and "Reseller fees paid", with a low-balance warning. Read that warning literally: when the balance runs out your customers' orders are rejected, and if the monthly fee cannot be charged the panel is suspended until you top up.
- "Domain setup" gives the DNS instruction: point the A record at the address shown, with proxy or CDN off, in "DNS only" mode. The SSL certificate is issued automatically on the first visit.
- "Payment methods" is where you connect your own accounts: PayTR with Merchant ID, Merchant Key, and Merchant Salt plus a "Test mode" toggle, PayTR bank transfer, Cryptomus with a Merchant ID and API key, and manual bank transfer with your own instructions. Until at least one is configured, your customers cannot add funds.
- "Branding" holds "Panel name", "Markup (×)", "Logo URL", "Favicon URL", "Accent color", and "Support e-mail". Image URLs must start with
https, and a markup change applies to new orders only. - "Customers", "Recent orders", and "Support tickets" give you per-customer balance adjustment, "Suspend" and "Reactivate", and visibility over your panel.
Panels are "Pending", "Active", or "Suspended", and a suspension for an unpaid fee lifts itself once you top up. From your customers' side a child panel behaves like a normal panel with three differences: no referral programme, no review flow, and no deposit bonuses or custom payment rails. The commercial description is on the child panel page.
Account, Security, Language, Currency, and the Extras
"Account & Security" holds three cards.
"Profile" shows your "Email" as read-only with a "Verified" or "Not verified" badge, and your "Name" as editable up to 100 characters. Press "Save" and you get "Saved."
"Change password" asks for "Current password", "New password", and "New password (again)", noting "At least 8 characters. Changing it signs out your other sessions." That is the point rather than a side effect: on success you see "Password changed. Other sessions were signed out." If you registered through Google and have no password yet, the form is replaced with "You signed in with Google; your account has no password yet. Use the link below to set one." and an "Email me a password link" button.
"Security" is two-factor authentication, showing "Two-factor authentication is on" or "Two-factor authentication is off". To enable it, enter your password, press "Enable 2FA", scan the QR code following the hint "Scan the QR with Google Authenticator, Authy, etc., then enter the code.", save the "Backup codes" somewhere that is not the same device, then enter the "Verification code" and press "Verify". Turning it off needs your password and "Disable 2FA". If you hold balance or run a reseller operation here, turn it on.
Below the menu sit three selectors. The language switcher changes the interface immediately and, if you are signed in, saves the choice to your account, which is what decides the language of the emails you receive. The currency switcher offers USD, TRY, and EUR, is stored in a cookie so it works without signing in, and changes display only. The theme switcher offers "Light", "Dark", and "System".
Two smaller pages round things out. "Refer & earn" starts with "Generate my code", then gives you "Your referral code" and "Your invite link" plus "Referrals", "Total earnings", and a "Recent earnings" table. Commission is 5% of the gross amount of every deposit your referrals make, credited as balance, and is not paid on child panel deposits. "My reviews" lists completed orders under "Orders waiting for your review" with a "Write a review" button; the dialog asks for "Your rating", a "Title", "Your review" between 10 and 1,000 characters, and an optional "Name shown on the site". Your full name is never published, and reviews sit at "Pending" until checked, then show as "Published" or "Rejected".
Common Mistakes, Error Messages, and a Pre-Flight Check
Most failed orders come down to a handful of causes. This table maps what you see to what happened and what to do.
| Message | What caused it | What to do |
|---|---|---|
| "Insufficient balance." | The total exceeds your wallet | Top up, or lower the quantity. Check the "Total" row, not the rate |
| "Quantity is out of the allowed range." | Outside the service's min/max | Check "Min - Max quantity". With drip-feed on, the range applies per run |
| "Drip-feed is not available for this service." | Runs above 1 on a service without drip-feed | Untick the box and order in one delivery |
| "You already have an active order for this link." | A duplicate block fired | See the note below; wait for the existing order to finish |
| "Enter valid comments (one per line)." | Empty or malformed comment list | One comment per line, between 1 and 10,000 non-empty lines |
| "Enter a valid public username (no private/invite links)." | Private channel, invite link, or an invalid username | Use the public handle. Private and invite links are rejected |
| "Invalid subscription values." | Post count outside 1 to 100, or a bad min/max | Fix the numbers. If the button is inert, your minimum exceeds your maximum |
| "This service is temporarily unavailable, please try again later." | The service cannot be ordered right now | Try later or pick another service |
| "The operation failed." | Generic fallback | Retry once; if it repeats, open a ticket with the service and link |
The duplicate message deserves its own explanation, because it comes from two different places and reads identically either way. The first is the panel's own block: same user, same service, same link, with an earlier order still pending or in progress. That order is never created, so nothing is charged. The second is the provider's lock, which is stricter because it locks the link regardless of which service you ordered, across all of that provider's resellers. When the provider rejects for that reason, your order is cancelled and the amount is automatically refunded. Same message, different mechanics, same practical rule: finish one order on a link before starting the next.
Things the panel does not check for you
Be honest with yourself about the boundary here.
- Private accounts. There is no check for whether the target account is public. The panel validates the format of the link and nothing about the account behind it. Order to a private profile and the delivery fails on the provider's side. You are not warned, and it is not refunded.
- Username changes. Same story. If the handle changes after you order, the link points nowhere useful and nobody catches it.
- Wrong link, right format. A link to the wrong post is a perfectly valid link. Nothing will stop you.
- Whether the service suits the target. A service built for one content format will not do anything useful on another. The "Description" box is where that is stated.
A pre-flight check before you press "Place order"
- Is "Min - Max quantity" showing a maximum of 1? If so, the price box is the full package price.
- Is "Drip-feed" ticked? If so, is the quantity the per-run amount and does "Total delivery" match what you want?
- Does the "Total" row show the number you expected?
- Is the link public, correct, and the one you meant, with
https://on the front? - Do you already have a live order on this link?
- Does the service show a refill flag, if drops matter to you?
The first order on any new service is worth placing small. Buy the minimum, watch it land, check the "Start" and "Remains" figures, and only then scale up. That habit costs a dollar and saves considerably more than a dollar.
Open your account and order in minutes
Signing up is free and takes two steps. Top up with card, bank transfer or crypto, place your order and track delivery from the dashboard.
Frequently Asked Questions
Do I have to verify my email before I can order?
No. A verification email is sent automatically when you register, but verification is not enforced: you can add funds and order with an unverified address, and your account page simply shows a "Not verified" badge. Verify anyway, because password resets and order notifications go there.
Why does the price box say "Price per 1,000" on a package service?
Because the label is fixed and does not change for flat-priced services. On a package, where the maximum quantity is 1, the number shown is the price of the whole package rather than a per-thousand rate. Check "Min - Max quantity" first: a maximum of 1 tells you it is a package. The "Total" row shows the real charge either way.
I set drip-feed to 5 runs and 1,000 quantity. What did I just buy?
Five thousand units, and you paid for five thousand. With drip-feed on, the quantity field is per run and the label changes to "Per run", so your total is quantity multiplied by runs. To spread 1,000 across five deliveries, enter 200 with 5 runs and confirm against the "Total delivery" line before submitting.
The drip-feed box is ticked but nothing was split. Why?
Because drip-feed only works on standard services. On the specialised types, the ones asking for comments, usernames, hashtags, poll numbers, groups, keywords, or media links, the checkbox appears and can be ticked but the runs and interval are never applied, so price and delivery are unchanged.
The "Refill" button disappeared after I pressed it once. Is my order ineligible now?
No, it is locked for 24 hours. While the cooldown runs, the row shows a "Refill in progress" badge instead of the button, and an early attempt elsewhere returns "A refill was started for this order recently, please try again later." An automatic job also checks completed refillable orders from the last 30 days, so a drop may be handled without you doing anything.
Why can't I cancel my order?
Cancellation depends on whether the service supports it, which is a property of the service and not of your account. If it does not, the "Cancel" button never appears and a ticket returns "This service does not support cancellation." If it does, the request goes straight to the provider, and if the provider refuses, no refund is issued and the order continues.
My order has been "Pending" for a long time. Where is my money?
The amount is deducted the moment the order is created, so it stays deducted while the order is pending. A long pending state usually means no provider has accepted it yet, which can include a provider-side error needing a retry rather than a refund. Open a ticket under "Order issue" with the order selected.
Are the "Subscriptions" page and subscription services the same thing?
No, and this catches people regularly. The "Subscriptions" page is the panel's own scheduler: it re-places an ordinary order on a fixed interval from your balance, managed with "Toggle" and "Delete". Subscription-type services are a provider feature serving new posts automatically, bought once on the order form with "Min per post", "Max per post", and "Posts", and charged upfront for the worst case.
Can I use the same API key on both the English and Turkish endpoints?
Yes. The same key authenticates on /api/v2 and /api/v2/tr, all parameters and actions are identical, and only the language of service names, category names, statuses, and error messages changes. Switching is a URL change and nothing else. Technical fields, type, currency, and refill_status, stay English on both, so standard client code keeps working.
Will the panel warn me if the target account is private?
No. There is no check for whether an account is public or private, and none for a username that changed after you ordered. The panel validates the format of the link and the duplicate rule, nothing else. If the target cannot be delivered to, the order fails on the provider's side and that is not refunded. Checking the target is your job and it takes five seconds. For anything you are still unsure about, the FAQ page and how it works cover the policy side.