ایک اینڈ پوائنٹ، صرف POST، جواب JSON میں۔ وہی کیٹلاگ اور وہی قیمتیں جو پینل پر ہیں — آپ کی اپنی سائٹ، بوٹ یا اسپریڈ شیٹ سے۔
اسے اکاؤنٹ پیج میں بنائیں۔ یہ خرچ کرنے کی اجازت دیتی ہے، اس لیے اس کی جگہ سرور کی کنفیگ میں ہے۔ اگر ایک بار بھی براؤزر، چیٹ یا اسکرین شاٹ میں آ گئی تو اسے بدل دیں۔
کم از کم اور زیادہ سے زیادہ مقدار ہر سروس کی الگ ہے — ایک سروس 10 یونٹ سے شروع ہوتی ہے، اگلی 500 000 سے۔ انہیں services سے پڑھیں اور آرڈر بھیجنے سے پہلے چیک کریں۔
بلنگ کا کوئی مرحلہ نہیں۔ add تبھی کامیاب ہوتا ہے جب بیلنس آرڈر کو پورا کرے، اس لیے balance کو poll کریں اور صفر تک پہنچنے سے پہلے اپنی قطار روک دیں۔
PerfectPanel اور زیادہ تر پینل اسکرپٹس یہ فارمیٹ خود سمجھتے ہیں۔ اپنے ایڈمن میں Providers → Add provider کھولیں اور سائٹ کا ایڈریس پیسٹ کریں — https://autosmo.com/، بس اتنا، اینڈ پوائنٹ نہیں۔ اپنی کلید ڈالیں، کیٹلاگ سِنک کریں، اپنا مارجن طے کریں۔
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 میں idempotency کلید نہیں، خودکار دوبارہ کوشش ہی وہ راستہ ہے جس سے گاہک کا ایک آرڈر دو ادا شدہ آرڈر بن جاتا ہے۔
ریٹ، حدیں اور دستیابی تب بدلتے ہیں جب سپلائر اپنی بدلتے ہیں۔ پرانی مقامی کاپی ان قیمتوں پر بیچتی ہے جو اب آپ کے پاس نہیں۔
remains کو اپنی ریفنڈ لاجک سے جوڑیں۔ ادھوری ڈیلیوری کو مکمل دکھانا chargeback پانے کا تیز ترین راستہ ہے۔
کیٹلاگ کا سب سے چھوٹا آرڈر دیں، مکمل ہونے تک poll کریں، اور ٹریفک منتقل کرنے سے پہلے تصدیق کریں کہ آپ کی طرف کا حساب آخری سینٹ تک charge سے ملتا ہے۔
| HTTP میتھڈ | POST |
| 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 کوڈ کی مثال