API documentation
Place orders, check their status and request refills from your own code.
Our API is compatible with PerfectPanel API v2, the standard used across SMM panels. You can connect any panel or ready-made software that supports this standard by simply entering the address above and your API key.
Every request sends the key (your API key) and the action (the operation) fields. Errors are also returned with HTTP 200 in the form {"error": "..."}. Check whether the response contains an error field.
Service list
services
Required unless marked Optional
key- Your API key
actionservices
Only services available for sale are listed. service is the service number you use when placing an order. rate is your account-specific price per 1000 units (USD); min and max are the minimum and maximum quantity for one order. type is Default (standard), a service type with extra order fields (Package, SEO, Custom Comments, Mentions, Mentions with Hashtags, Mentions Custom List, Mentions Hashtag, Mentions User Followers, Mentions Media Likers, Poll, Comment Replies, Web Traffic; see Service types) or Subscriptions (subscription); refill and cancel are each true when the service accepts that request through the API (action=refill, action=cancel), otherwise false. dripfeed true means drip-feed orders can be placed on this service with runs and interval.
[
{
"service": 1,
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram",
"rate": "0.90",
"min": "50",
"max": "10000",
"refill": true,
"cancel": true,
"dripfeed": true
},
{
"service": 2,
"name": "Facebook Likes",
"type": "Default",
"category": "Facebook",
"rate": "8",
"min": "10",
"max": "1500",
"refill": false,
"cancel": false,
"dripfeed": false
},
{
"service": 3,
"name": "Instagram Custom Comments",
"type": "Custom Comments",
"category": "Instagram",
"rate": "12",
"min": "5",
"max": "500",
"refill": false,
"cancel": true,
"dripfeed": false
}
]
New order
add
Required unless marked Optional
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. runsOptional- Drip-feed order: number of runs (2 to 1000). Only for
dripfeedenabled services, sent together withinterval. intervalOptional- Drip-feed order: minutes between two runs (1 to 10080). Sent together with
runs.
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) usernameOptional- Subscription (
typeSubscriptions): the username of the account to follow. Used instead oflinkandquantity. minOptional- Subscription: minimum quantity per post (within the service limits)
maxOptional- Subscription: maximum quantity per post (within the service limits;
maxcannot be less thanmin) postsOptional- Subscription: maximum number of new posts to process. Required; unlimited subscriptions are not available
old_postsOptional- Subscription: optional, number of existing posts to process
delayOptional- Subscription: delay in minutes; 0, 5, 10, 15, 20, 30, 40, 50, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540 or 600
expiryOptional- Subscription: optional end date (
dd/mm/yyyy, after today). The response is{"order": subscription id}; the fee is (posts + old_posts) x max x price / 1000 charged immediately (unlike PerfectPanel, the range is billed at the maximum quantity). The amount for unprocessed posts is refunded when the subscription is completed, expires or is canceled
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
- Note
- One package per order: quantity is not needed (it is ignored), and the order costs the listed rate once.
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. keywords- Note
- keywords: the search keywords.
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
comments- Note
- comments: one comment per line. quantity is not needed (it is ignored): it is the number of comments.
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. usernames- Note
- usernames: usernames separated by commas or line breaks (a leading @ is allowed).
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. usernameshashtags- Note
- usernames: usernames separated by commas or line breaks; hashtags: hashtags separated by commas or line breaks (a leading @ or # is allowed).
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) usernames- Note
- usernames: one username per line. link and quantity are not needed (they are ignored): quantity is the number of usernames.
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. hashtag- Note
- hashtag: the hashtag whose users are mentioned (a leading # is allowed).
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. username- Subscription (
typeSubscriptions): the username of the account to follow. Used instead oflinkandquantity. - Note
- username: the account whose followers are mentioned (a leading @ is allowed).
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. media- Note
- media: the link of the media whose likers are mentioned.
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. answer_number- Note
- answer_number: the number of the answer to vote for (a whole number from 1).
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) username- Subscription (
typeSubscriptions): the username of the account to follow. Used instead oflinkandquantity. comments- Note
- username: the username of the comment owner; comments: one reply per line. link and quantity are not needed (they are ignored): quantity is the number of replies.
key- Your API key
actionaddservice- Service number (the
servicevalue in the service list) link- Link of the page to act on, or username (up to 191 characters)
quantity- Quantity: a whole number between the service's
minandmaxvalues. countrydevicetype_of_trafficgoogle_keywordOptionalreferring_urlOptional- Note
- country, device and type_of_traffic are required; google_keyword and referring_url are optional.
order is your order number; use it to check the status. The order amount is deducted from your balance immediately. For drip-feed orders, runs and interval are sent together (only for dripfeed enabled services); in this case order is the order number of the first run. The total amount (run price x runs) is deducted immediately; later runs are not charged separately, and they are queued interval minutes apart.
If you send runs or interval to a service that does not support drip-feed, the order is not accepted and {"error": "Drip-feed is not available for this service"} is returned.
Subscription (Subscriptions): For services with type Subscriptions, do not send link or quantity; send username (the username of the account to follow), min and max (minimum and maximum quantity per post, within the service limits), posts (maximum number of new posts to process; required; there are no unlimited subscriptions), old_posts (optional, number of existing posts to process), delay (minutes: 0, 5, 10, 15, 20, 30, 40, 50, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540 or 600) and expiry (optional, dd/mm/yyyy, after today). The response is {"order": subscription id}. This number is not an order number and starts from 1000000001.
Fee difference: Unlike PerfectPanel, a subscription cannot be opened on this panel without a number of posts, and the fee is (posts + old_posts) x max x price / 1000, charged immediately when the subscription is opened; the range is billed at the maximum quantity. When a subscription is completed, expires or is canceled, the amount for unprocessed posts is refunded.
Error responses:
-
Incorrect request - a required parameter is missing, the quantity is not a whole number,
runsorintervalwas sent on its own -
Incorrect service ID - service not found or not available for sale
-
Incorrect link - link is longer than 191 characters
-
Quantity less than minimal 50 - quantity is below the service's minimum order quantity
-
Quantity more than maximal 10000 - quantity is above the service's maximum order quantity
-
Not enough funds on balance - your balance is insufficient
-
Drip-feed is not available for this service - service does not support drip-feed
-
Runs less than minimal 2Runs more than maximal 1000 - number of runs is outside the limits
-
Interval less than minimal 1Interval more than maximal 10080 - interval is outside the limits
-
Posts is required (unlimited subscriptions are not available) - in a subscription,
postsis missing; unlimited subscriptions are not available -
Min less than minimal 10Max more than maximal 1000Max less than minimal 10 - subscription quantity is outside the limits
-
Incorrect usernameIncorrect postsIncorrect delayIncorrect expiry date - subscription field is invalid
-
Incorrect commentsIncorrect usernames - a field of a service type with extra order fields has the wrong format (see Service types)
curl -X POST https://smmlunex.com/api/v2 \
-d key=YOUR_API_KEY \
-d action=add \
-d service=1 \
-d link=https://instagram.com/username \
-d quantity=1000
{
"order": 23501
}
Order status
status
Required unless marked Optional
If you query with a subscription number (starting from 1000000001), the response is in this form: {"status", "expiry", "posts", "orders"}. Fields: status (Active, Paused, Completed, Expired or Canceled), expiry (dd/mm/yyyy or empty), posts (number of processed posts) and orders (order numbers of this subscription's post orders). Only your own subscriptions can be queried.
key- Your API key
actionstatusorder- Order number
charge is the net charge: order amount minus the refunded amount (the order amount itself when nothing was refunded), start_count is the start count, remains is the remaining quantity, currency is the currency. You can only query your own orders.
Status values (status)
Pending- Pending
Processing- Processing
In progress- In progress
Completed- Completed
Partial- Partial
Canceled- Canceled
Refunded- Refunded
Error responses:
-
Incorrect request orderwas not sent-
Incorrect order ID - order not found or does not belong to you
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
}
Status of multiple orders
status
Required unless marked Optional
key- Your API key
actionstatusorders- Comma-separated order numbers (up to 100)
The response is an object keyed by the numbers you sent. For numbers that are not found or do not belong to you, error is returned.
Error responses:
-
Incorrect request - more than 100 numbers were sent; the whole request is rejected
{
"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"
}
}
Balance
balance
Required unless marked Optional
key- Your API key
actionbalance
{
"balance": "100.84292",
"currency": "USD"
}
Refill
refill
Required unless marked Optional
Opens a refill request for one of your Completed or Partial orders when its service allows refill (the service's refill value in the service list is true). The response is the refill number; follow the request with action=refill_status.
{"error": "Refill is not available for this order"} is returned when the service does not allow refill, the order belongs to a subscription or a drip-feed order, the order is not Completed or Partial, a refill request for the order is already open, the last refill of the order was completed less than 24 hours ago, you already have 50 open refill and cancel requests, or refill requests through the API are turned off for your account.
key- Your API key
actionrefillorder- Order number
ordersOptional- Instead of
order: comma-separated order numbers (up to 100)
{
"refill": 1
}
[
{
"order": 1,
"refill": 1
},
{
"order": 2,
"refill": {
"error": "Refill is not available for this order"
}
},
{
"order": 3,
"refill": {
"error": "Incorrect order ID"
}
}
]
Refill status
refill_status
Required unless marked Optional
key- Your API key
actionrefill_statusrefill- Refill number
refillsOptional- Instead of
refill: comma-separated refill numbers (up to 100)
status is one of Pending, In progress, Completed, Rejected or Error. Only your own refills can be queried; any other number returns Refill not found.
{
"status": "Completed"
}
[
{
"refill": 1,
"status": "Completed"
},
{
"refill": 2,
"status": {
"error": "Refill not found"
}
}
]
Cancel
cancel
Required unless marked Optional
Opens a cancel request for each order whose service allows cancel (the service's cancel value in the service list is true) and whose status is Pending, In progress or Processing. "cancel": 1 means the request was opened; it is not an immediate cancellation and nothing is refunded yet. When the provider cancels the order, its status becomes Canceled (or Partial when part of it was already delivered) and the undelivered part is refunded to your balance; follow the result with action=status.
Cancel is not available for this order is returned for an order when its service does not allow cancel, the order belongs to a subscription or a drip-feed order, the order has another status, a cancel request for the order is already open, or you already have 50 open refill and cancel requests.
key- Your API key
actioncancelorders- Comma-separated order numbers (up to 100)
[
{
"order": 2,
"cancel": 1
},
{
"order": 9,
"cancel": {
"error": "Incorrect order ID"
}
},
{
"order": 5,
"cancel": {
"error": "Cancel is not available for this order"
}
}
]
Error messages
error
Errors are returned with HTTP 200 as a JSON object with an "error" field. Check every response for it.
Invalid API key- The API key was not sent, is incorrect, or your account is closed
Incorrect requestactionis missing or unknown, a required parameter is missing, the quantity is not a whole number,runsorintervalwas sent on its own, or more than 100 numbers were sent in one requestIncorrect service ID- Service not found or not available for sale
Incorrect link- The link is longer than 191 characters
Quantity less than minimal N- Quantity is below the service's minimum order quantity (N)
Quantity more than maximal N- Quantity is above the service's maximum order quantity (N)
Not enough funds on balance- Your balance is not enough for this order
Drip-feed is not available for this service- The service does not support drip-feed;
runsandintervalare not accepted for this service Runs less than minimal 2- Number of runs is below 2
Runs more than maximal 1000- Number of runs is above 1000
Interval less than minimal 1- Interval is shorter than 1 minute
Interval more than maximal 10080- Interval is longer than 10080 minutes (one week)
Incorrect order ID- Order not found or does not belong to you
Refill is not available for this order- The service does not allow refill, or this order cannot be refilled now (see Refill)
Refill not found- There is no refill with this number
Cancel is not available for this order- The service does not allow cancel, or this order cannot be canceled now (see Cancel)
Incorrect <field>- A field of a service type with extra order fields has the wrong format, for example Incorrect comments or Incorrect usernames (see Service types)
Internal server error- An unexpected server error occurred (HTTP 500). The result of the request is unclear, so check your balance before sending the order again
Order statuses
Pending- Pending
Processing- Processing
In progress- In progress
Completed- Completed
Partial- Partial
Canceled- Canceled
Refunded- Refunded