API docs
Your API key
Sign in to create your API key, see the calls your script made and choose the API currency.
Quick start
Standard SMM API v2 — scripts written for other panels usually work here after changing the address and key.
- Send a request
POSThttps://korea.seedingthucong.com/api/v2The body can be a form (application/x-www-form-urlencoded) or JSON. Use POST with key and action in the body. GET also works, but GET puts your key into server logs. A key in the query string of a POST is treated as a wrong key.
- Read the result
HTTP 200 with an error field for every API error; only transport errors (404, 405, 413) keep their HTTP code. No error field means success. Amounts and quantities come back as strings (e.g. "11900") — convert them before calculating.
- Currency and limits
Amounts come back in VND unless the key is switched to USD after signing in. The coin/USD button at the top of the page only changes how the website shows money; it never affects the API. At most 300 requests a minute per API key.
- Retry without duplicate orders
Every add call is a new order and a new charge. Send a unique ref_id with every order. If add times out or the network fails, wait longer than the maximum processing time of 60 seconds, then call status with that ref_id — only send add again if no order exists. Never retry after receiving {"order": …} or a business error.
More connection rules
- status: at most 100 IDs per call, once a minute is enough. Statuses update every 2–30 minutes. Only ask for orders that are not final yet.
- orders=",,," (only commas) returns [] for cancel and {} for status.
- cancel answers per order; cancel can also answer Internal error for one order (safe to call again).
- updates: without since_id, newest first. With since_id, items come oldest first, up to 100; an item shows up about 10 seconds after it is created.
- Showing a hidden item again, or changing your own price or tier, is not sent again to a script that already passed that item.
- JSON without a Content-Type header: at most 64 KB, nesting depth 8.
Actions
Pick an action to see its parameters, sample code and response.
action=servicesServer list
All servers you can use, with your own price per 1,000 units. Call once at start-up and keep it; no need before every order.
| Name | Required | Value type | Meaning | Example |
|---|---|---|---|---|
key | Yes | string | Your API key | sk_live_… |
action | Yes | string | Always services | services |
Shows sk_live_… — sign in and create your API key to get your own.
service- Server ID used when ordering. It never changes and is never reused.
name- Server name, in your server name language
category- Group as "Platform - Group"
type- "Default" = link + quantity. "Custom Comments" / "Mentions Custom List" = send the list in comments (or usernames), one item per line; the quantity is the number of non-empty lines
rate- Your price per 1,000 units in your API currency. Order amount = rate × quantity ÷ 1000.
min · max- Smallest / largest quantity per order
cancel- true = can be cancelled with the cancel action
refund- true = the part not delivered is refunded; false = a "no cancel, no refund" server: once started, the order ends as Completed with no refund
refill · dripfeed- Always false — not supported
country- 2-letter country code of the audience (vn, th, us…), global = worldwide
action=addPlace order
Creates a new order and charges your balance at once. Every call is a new order — the server does not block duplicates, so always send a ref_id.
| Name | Required | Value type | Meaning | Example |
|---|---|---|---|---|
key | Yes | string | Your API key | sk_live_… |
action | Yes | string | Always add | add |
service | Yes | integer | Server ID from services | 1021 |
link | Yes | string (URL) | The link to grow, matching the server platform | https://www.facebook.com/abc |
quantity | Yes | integer | Quantity, within the server min–max. Not needed for Custom Comments servers — ignored there | 1000 |
comments | No | string | Custom Comments servers only: one comment per line. Quantity = number of non-empty lines (blank lines are not counted, repeated lines are kept and charged). usernames is accepted too | Nice!\nLove it |
ref_id | No | string ≤ 64 characters | Your own order code — send it to find the order again after a network error | order-2291 |
Shows sk_live_… — sign in and create your API key to get your own.
order- Our order ID — keep it to ask status or cancel
action=statusOrder status
Send exactly one of: order (one order), orders (several) or ref_id (find by your code). Only ask for orders that are not final yet.
| Name | Required | Value type | Meaning | Example |
|---|---|---|---|---|
key | Yes | string | Your API key | sk_live_… |
action | Yes | string | Always status | status |
order | One of | integer | One order ID → one object | 100245 |
orders | One of | string | Up to 100 IDs separated by commas → an object keyed by order ID | 100245,100246 |
ref_id | One of | string | The ref_id you sent → your orders with it (up to 100 newest; none → {}) | order-2291 |
Shows sk_live_… — sign in and create your API key to get your own.
(key)- With orders / ref_id: the key is the order ID as a string. A wrong ID gets its own error and does not break the call.
charge- Amount charged, in your API currency
start_count- Starting count when the order started; 0 until known
status- One of the 5 statuses in the table below
remains- Quantity not delivered yet
currency- Currency of charge
ref_id- The ref_id you sent; null if none
action=cancelCancel orders
Requests cancellation of one or more orders. The answer is per order; one failing does not affect the others.
| Name | Required | Value type | Meaning | Example |
|---|---|---|---|---|
key | Yes | string | Your API key | sk_live_… |
action | Yes | string | Always cancel | cancel |
order | One of | integer | One order ID | 100245 |
orders | One of | string | Up to 100 IDs separated by commas | 100245,100246 |
Shows sk_live_… — sign in and create your API key to get your own.
order- Order ID
cancel- 1 = request received. The part not delivered is refunded once the order stops — follow it with status (Canceled or Partial).
cancel.error- This order cannot be cancelled — see the error table
action=balanceBalance
Your current balance in your API currency.
| Name | Required | Value type | Meaning | Example |
|---|---|---|---|---|
key | Yes | string | Your API key | sk_live_… |
action | Yes | string | Always balance | balance |
Shows sk_live_… — sign in and create your API key to get your own.
balance- Current balance
currency- Your API currency
action=updatesServer updates
Specific to this panel (not in the standard SMM API v2): changes to servers you can use — new server, price change, maintenance, discontinued, min/max change, announcements.
| Name | Required | Value type | Meaning | Example |
|---|---|---|---|---|
key | Yes | string | Your API key | sk_live_… |
action | Yes | string | Always updates | updates |
since_id | No | integer | Only items with a larger id — send the largest id you received last time | 5119 |
Shows sk_live_… — sign in and create your API key to get your own.
id- Item ID, increasing — store the largest and send it as since_id
type- One of: new · price_up · price_down · maintenance · resumed · discontinued · limits_changed · announcement
service- Related server ID; null for announcements
title · body- Title and text, in your server name language
old · new- Price items: price per 1,000 units before → after, in your API currency, always as strings. limits_changed: {"min", "max"}, always as strings; other types: null.
created_at- Time, ISO 8601 Vietnam time (+07:00)
Order statuses
Values of the status field. The first two are in progress; the last three are final — they never change, stop asking about that order.
Pending | Received, waiting to start. | keep asking |
In progress | Running — remains is what is still left. | keep asking |
Completed | Delivered in full, remains = 0. | final |
Partial | Under-delivered; the part not delivered (remains) has been refunded to your balance. | final |
Canceled | Cancelled; the part not delivered has been refunded (cancelled before starting = full refund). | final |
Error codes and what to do
The error text is always English and fixed — your script can compare strings.
error | Meaning | What to do |
|---|---|---|
Invalid API key | The key is wrong or was replaced by a new one. | Copy the key again on this page. More than 20 wrong keys a minute from one IP are refused for up to a minute. |
Account disabled | Your account is locked. | Contact support; do not retry. |
API disabled | API access is turned off for your account. | Contact support to turn it on. |
Email not verified | Your email address is not verified yet. | Verify your email on the website, then call again. |
Too many requests | More than 300 requests a minute on your key, or too many wrong keys from your IP. | Wait a few seconds; ask status for many IDs in one call. |
Maintenance | The system is under maintenance (if only add returns it: new orders are paused). | Retry in a few minutes. |
Action not supported | This action is not supported (e.g. refill). | Use only the actions on this page. |
Drip-feed not supported | runs / interval were sent — drip-feed is not supported. | Remove runs and interval. |
Incorrect order ID | No such order, or it is not yours. | Check the order ID. |
Incorrect ref_id | ref_id is not text or is longer than 64 characters. | Send text of at most 64 characters. |
Incorrect since_id | since_id is not a whole number of 0 or more. | Send the largest id you received, or leave it out. |
Internal error | An unexpected error on our side. | Safe to retry the same call after a moment; for add, wait longer than the maximum processing time of 60 seconds and check status by ref_id before sending it again. |
Method not allowed | Only GET and POST are accepted; this answer comes with HTTP 405. | Use POST. |
Request too large | The request body is too large; this answer comes with HTTP 413. | Send fewer IDs or a shorter link. |
Not found | Wrong address under /api/v2; this answer comes with HTTP 404. | Call exactly https://korea.seedingthucong.com/api/v2. |
Timed out, order not placed | add could not finish in time (at most 60 seconds); no order was placed and nothing was charged — this is our side, not your request. | Not a business error: send add again at once — the same ref_id is fine. |
Missing parameter: X | Parameter X is missing. | Add X to the request body. |
Too many order IDs (max 100) | More than 100 order IDs in one call. | Split into several calls of at most 100 IDs. |
Incorrect service ID | No such server, or you cannot use it. | Call services to get the IDs again. |
Service not active | The server is no longer sold. | Choose another server (see the updates action). |
Service under maintenance | The server is under maintenance. | Retry later or choose another server. |
Service temporarily unavailable | The server is temporarily not taking orders. | Retry in a few minutes. |
Incorrect quantity | quantity is not a positive whole number. | Send a whole number, e.g. 1000. |
Quantity less than minimal X | Quantity is below the minimum. | Raise the quantity to at least X. |
Quantity more than maximal X | Quantity is above the maximum. | Lower the quantity or split the order. |
Incorrect link | The link is malformed or not for this server platform. | Check the link and the platform. |
Not enough funds on balance | Not enough balance. | Top up, then order again. |
Order amount is below minimum | The order amount is below the minimum. | Raise the quantity. |
You have active order with this link. Please wait until order being completed. | This server does not allow two running orders for the same link. | Wait for the earlier order to finish. |
Incorrect comments | A “Custom Comments” server got no usable lines in comments / usernames (empty, only blank lines, not text). | Send the list as text, one item per line. |
Too many comments | comments / usernames is too large to process (over 900 KB once encoded — Vietnamese and emoji count about 3 times). | Split the list into several orders. |
Line N is longer than X characters | Line N of comments / usernames is longer than this server allows (X characters). | Shorten that line, then send again. |
Order can't be canceled | The server does not allow cancelling, or the order has finished. | Do not retry. |
Cancel already requested | A cancel request was already sent. | Wait and follow it with status. |