Один ендпоінт, лише POST, відповідь JSON. Той самий каталог і ті самі ціни, що в панелі, з вашого сайту, бота чи таблиці.
Згенеруйте його на сторінці акаунта. Він дозволяє витрати, тому його місце — у конфігурації сервера. Змініть його, якщо він хоч раз потрапив до браузера, чату чи скриншота.
Мінімальна та максимальна кількість задаються окремо — одна послуга починається з 10 одиниць, наступна — з 500 000. Читайте їх з services і перевіряйте перед надсиланням замовлення.
Кроку з рахунком на оплату немає. add проходить лише поки балансу вистачає на замовлення, тож опитуйте balance і зупиняйте чергу, перш ніж він дійде до нуля.
PerfectPanel і більшість панельних скриптів читають цей формат нативно. У своїй адмінці зайдіть у Providers → Add provider і вставте адресу сайту — https://autosmo.com/, лише її, не endpoint. Додайте свій ключ, синхронізуйте каталог, задайте націнку.
curl -X POST https://autosmo.com/api/v2 \\
-d key=YOUR_KEY \\
-d action=add \\
-d service=6758 \\
-d link=https://instagram.com/yourprofile \\
-d quantity=100
{"order": 8231455}
curl -X POST https://autosmo.com/api/v2 -d key=YOUR_KEY -d action=status -d order=8231455
{"charge": "0.016", "start_count": "2841", "status": "Completed",
"remains": "0", "currency": "USD"}
Послуга 6758 — реальний id з каталогу. Кількості нижче мінімуму послуги відхиляються, а не округлюються вгору.
Вставте це в ChatGPT, Claude або Cursor, назвіть свою мову — і отримаєте робочий клієнт. Він несе повний список викликів плюс поведінку, у якій легко помилитися.
Build me a client for the AutoSMO SMM API (v2), in a language I will name.
ENDPOINT
POST https://autosmo.com/api/v2 — form-encoded body, JSON response, no other verbs.
Authentication is the field `key`, sent with every call. Server-side only.
CALLS
action=services -> array of { service, name, type, category, rate (per 1000),
min, max, refill:bool, cancel:bool }
action=add params: service, link, quantity [, runs, interval] -> { "order": id }
custom comments: service, link, comments
action=status params: order | orders (comma separated, max 100)
-> { charge, start_count, status, remains, currency }
action=refill params: order | orders (max 100) -> { "refill": id }
action=refill_status params: refill | refills -> { "status": ... }
action=cancel params: orders (max 100)
action=balance -> { balance, currency }
BEHAVIOUR THAT COSTS MONEY IF IGNORED
- A timed-out `add` is not a failed `add`. The order may exist and be paid for.
Surface it for a human; do not resend it on a timer.
- Quantity outside a service's own min/max is refused outright, so read those
bounds from the catalogue and check before sending.
- Status is polled with `orders` and up to 100 ids at once. Per-order polling
works in testing and dies in production.
- A 200 response can still contain per-entry errors when several ids were
requested. Walk the entries; do not trust the envelope.
- "Partial" is a delivery that stopped early: `remains` is the shortfall and
`charge` is the real cost. Pass that difference back to your buyer.
- Refill and cancel exist only where the catalogue flags say so.
WHAT I EXPECT FROM YOU
- One function per call, with the response parsed into typed structures.
- My order reference stored next to the id this API returns.
- Two background jobs: refresh the catalogue, and follow orders still open.
- A rehearsal switch that logs calls without sending them, and a single
end-to-end test using the cheapest service in the catalogue.
Ні у фронтенд-JavaScript, ні в мобільній збірці, ні в публічному репозиторії. Будь-хто, у кого він є, може оформлювати замовлення з вашого балансу.
Оскільки в add немає ключа ідемпотентності, автоматичний повтор — це спосіб перетворити одне замовлення клієнта на два оплачені.
Тарифи, ліміти й доступність змінюються, коли їх змінюють постачальники. Застаріла локальна копія продає за цінами, яких у вас уже немає.
Заведіть remains у власну логіку повернень. Позначити часткову доставку як виконану — найшвидший спосіб заробити чарджбек.
Оформте найменше замовлення, яке дозволяє каталог, опитайте його до завершення й переконайтеся, що ваша сторона сходиться з charge до копійки, перш ніж перемикати трафік.
| HTTP-метод | POST |
| URL API | https://autosmo.com/api/v2 |
| Формат відповіді | JSON |
| Parameters | Description |
|---|---|
| key | Your API key |
| action | services |
Приклад відповіді
[
{
"service": 1,
"name": "Followers",
"type": "Default",
"category": "First Category",
"rate": "0.90",
"min": "50",
"max": "10000",
"refill": true,
"cancel": true
},
{
"service": 2,
"name": "Comments",
"type": "Custom Comments",
"category": "Second Category",
"rate": "8",
"min": "10",
"max": "1500",
"refill": false,
"cancel": true
}
]
Приклад відповіді
{
"order": 23501
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | status |
| order | Order ID |
Приклад відповіді
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD"
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | status |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Приклад відповіді
{
"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"
}
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill |
| order | Order ID |
Приклад відповіді
{
"refill": "1"
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Приклад відповіді
[
{
"order": 1,
"refill": 1
},
{
"order": 2,
"refill": 2
},
{
"order": 3,
"refill": {
"error": "Incorrect order ID"
}
}
]
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill_status |
| refill | Refill ID |
Приклад відповіді
{
"status": "Completed"
}
| Parameters | Description |
|---|---|
| key | Your API key |
| action | refill_status |
| refills | Refill IDs (separated by a comma, up to 100 IDs) |
Приклад відповіді
[
{
"refill": 1,
"status": "Completed"
},
{
"refill": 2,
"status": "Rejected"
},
{
"refill": 3,
"status": {
"error": "Refill not found"
}
}
]
| Parameters | Description |
|---|---|
| key | Your API key |
| action | cancel |
| orders | Order IDs (separated by a comma, up to 100 IDs) |
Приклад відповіді
[
{
"order": 9,
"cancel": {
"error": "Incorrect order ID"
}
},
{
"order": 2,
"cancel": 1
}
]
| Parameters | Description |
|---|---|
| key | Your API key |
| action | balance |
Приклад відповіді
{
"balance": "100.84292",
"currency": "USD"
}
Приклад коду на PHP