API
Better Social nudi API za programere u stilu JustAnotherPanel (JAP) v2 koji koriste mnogi SMM paneli, pa većina postojećih klijenata za panele radi čim promenite endpoint i ključ.
Endpoint i autentifikacija
| Endpoint | https://better-social.pro/api/v2 |
|---|---|
| Metode | POST sa telom u formatu form-urlencoded ili JSON, ili GET sa parametrima u URL-u |
| Obavezno u svakom zahtevu | key (vaš lični API ključ) i action |
| Format odgovora | JSON |
| Valuta | USD |
Kako da dobijete ključ: u kontrolnoj tabli otvorite Tools → API. Ključ se automatski pravi kada prvi put otvorite tu stranicu. Odatle ga možete prikazati, kopirati ili generisati ponovo (Regenerate). Kada generišete novi ključ, stari odmah prestaje da radi.
API porudžbine podležu istim pravilima za stanje i proveru kao porudžbine iz kontrolne table. GET je zgodan za brze testove, ali stavlja vaš ključ u URL-ove i logove servera, pa u produkciji koristite POST.
Čuvajte API ključ u tajnosti
Svako ko ima vaš ključ može da šalje porudžbine sa vašim stanjem. Držite ga samo na svom serveru. Nikada ga ne stavljajte u JavaScript u pregledaču, mobilne aplikacije ili javne repozitorijume. Ako procuri, odmah ga generišite ponovo u kontrolnoj tabli. Tim Better Social-a vam nikada neće tražiti API ključ.
Pregled akcija
| Akcija | Parametri (pored key) | Vraća |
|---|---|---|
services | nema | Spisak dostupnih usluga |
add | service, link, quantity, opciono comments | {"order": ..., "charge": ...} |
status | order (ili orders) | Status jedne porudžbine (ili više njih) |
multi_status | orders (razdvojeni zarezom) | Statusi po ID-u porudžbine |
balance | nema | {"balance": ..., "currency": "USD"} |
refill | order ili orders | Odgovor dobavljača |
cancel | order ili orders | Odgovor dobavljača |
services: spisak usluga
curl -X POST https://better-social.pro/api/v2 \
-d key=YOUR_API_KEY \
-d action=services
Vraća niz sa jednim objektom za svaku dostupnu uslugu:
| Polje | Tip | Značenje |
|---|---|---|
service | integer | ID usluge, koristi se u add |
name | string | Naziv usluge |
type | string | Uvek "Default" |
category | string | Naziv kategorije |
rate | string | Cena za 1000 u USD, 4 decimale |
min, max | string | Minimalna i maksimalna količina |
refill | boolean | Da li usluga podržava dopune |
cancel | boolean | Da li usluga podržava zahteve za otkazivanje |
dripfeed | boolean | Oznaka za drip-feed |
needs_custom_text | boolean | Ako je true, uz add pošaljite comments |
Primer odgovora (vrednosti su ilustrativne)
[
{
"service": 101,
"name": "TikTok Live Likes",
"type": "Default",
"category": "TikTok Live",
"rate": "1.5000",
"min": "100",
"max": "100000",
"refill": false,
"cancel": false,
"dripfeed": false,
"needs_custom_text": false
}
]
add: slanje porudžbine
| Parametar | Obavezan | Opis |
|---|---|---|
service | da | ID usluge (integer) iz services |
link | da | Ciljno korisničko ime ili link. Za TikTok Live usluge: @username ili https://www.tiktok.com/@username |
quantity | da* | Ceo broj između vrednosti min i max za uslugu |
comments | za usluge sa prilagođenim komentarima | Obavezno kada je needs_custom_text jednako true. Jedan komentar po redu. Količina je tada broj nepraznih redova, a quantity koji pošaljete se zanemaruje. |
Iznos je rate × quantity ÷ 1000 i skida se sa vašeg stanja. Ako stanje nije dovoljno, porudžbina se odbija.
curl -X POST https://better-social.pro/api/v2 \
-d key=YOUR_API_KEY \
-d action=add \
-d service=101 \
-d link=@username \
-d quantity=500
Odgovor
{"order": 123456, "charge": "0.7500"}
Vraćenu vrednost order koristite za status, refill i cancel. Ručne usluge vraćaju ID porudžbine kao string i "manual": true, na primer {"order": "3f2c...", "manual": true, "charge": "5.0000"}.
Prilagođeni komentari (JSON telo)
curl -X POST https://better-social.pro/api/v2 \
-H "Content-Type: application/json" \
-d '{"key":"YOUR_API_KEY","action":"add","service":202,"link":"@username","comments":"Great stream!\nHello from Podgorica"}'
status: provera porudžbine
curl -X POST https://better-social.pro/api/v2 \
-d key=YOUR_API_KEY \
-d action=status \
-d order=123456
Odgovor
{
"charge": "0.7500",
"start_count": null,
"status": "In progress",
"remains": "120",
"currency": "USD",
"order": 123456
}
statusstiže od dobavljača (na primerPending,In progress,Completed,Partial,Canceled).remainsje broj koji dobavljač još nije isporučio, ilinullako nije poznat.start_countje trenutno uveknull.- Nepoznat ID porudžbine vraća
{"error": "not found"}. - Svaki poziv za status traži svež status od dobavljača, zato nemojte proveravati status u brzoj petlji.
multi_status: provera više porudžbina
Pošaljite orders kao spisak razdvojen zarezima (radi i razdelnik |). Odgovor je objekat sa ključevima koji su ID-jevi koje ste poslali. status sa više ID-jeva u orders ponaša se isto. status sa jednim ID-jem vraća jedan objekat.
curl -X POST https://better-social.pro/api/v2 \
-d key=YOUR_API_KEY \
-d action=multi_status \
-d orders=123456,123457
Odgovor
{
"123456": {"charge": "0.7500", "start_count": null, "status": "Completed", "remains": "0", "currency": "USD", "order": 123456},
"123457": {"error": "not found"}
}
balance: provera stanja
curl "https://better-social.pro/api/v2?key=YOUR_API_KEY&action=balance"
Odgovor
{"balance": "12.3400", "currency": "USD"}
refill i cancel
Pošaljite order (jedan ID) ili orders (razdvojeni zarezom). Vaš zahtev se prosleđuje dobavljaču, a njegov odgovor vraća se nepromenjen. Za više ID-jeva odgovor stiže kao objekat sa vašim ID-jevima kao ključevima. Nepoznati ID-jevi vraćaju {"error": "not found"}.
curl -X POST https://better-social.pro/api/v2 \
-d key=YOUR_API_KEY \
-d action=refill \
-d order=123456
Da li su dopuna ili otkazivanje mogući zavisi od usluge (pogledajte oznake refill i cancel u services). Naša pravila otkazivanja i dalje važe: porudžbine koje su počele ne mogu se otkazati.
Greške
Greške koriste HTTP statusne kodove sa JSON telom. Većina izgleda kao {"detail": {"error": "message"}}. Neke koriste običan string, na primer {"detail": "Invalid API key"}. Uvek proverite HTTP statusni kod.
| HTTP | Kada |
|---|---|
| 400 | Nedostaje action, nepoznata akcija, nedostaje ili je neispravan service/link/quantity, količina van opsega min/max, nedostaju komentari za uslugu sa prilagođenim komentarima, ili format linka nije dozvoljen za TikTok Live usluge |
| 401 | API ključ nedostaje ili nije ispravan |
| 402 | Nedovoljno stanja za porudžbinu |
| 403 | Nalog je suspendovan ili je ciljno korisničko ime zaštićeno |
| 404 | Usluga nije dostupna |
| 502 | Dobavljač je vratio grešku |
| 503 | U toku je održavanje. Pokušajte ponovo kasnije. |
U rezultatima akcija status, multi_status, refill i cancel problem sa pojedinačnom porudžbinom prijavljuje se kao {"error": "..."} za tu porudžbinu, uz HTTP 200.
Primer u Python-u
import os
import requests
API = "https://better-social.pro/api/v2"
KEY = os.environ["BETTER_SOCIAL_API_KEY"] # keep the key out of your code
def call(action, **params):
r = requests.post(API, data={"key": KEY, "action": action, **params}, timeout=30)
r.raise_for_status()
return r.json()
print(call("balance"))
order = call("add", service=101, link="@username", quantity=500)
print(call("status", order=order["order"]))
Dobre prakse
- Čuvajte ključ u promenljivoj okruženja ili menadžeru tajni, nikada u frontend kodu.
- Generišite novi ključ ako mislite da je otkriven, ili kada neko ko ima pristup napusti vaš tim.
- Redovno čitajte
services. Cene i dostupnost se menjaju. - Poštujte pravilo jedne porudžbine po linku. Pogledajte Porudžbine.
- Proveravajte statuse u razumnom intervalu, na primer na svakih nekoliko minuta, po mogućnosti sa
multi_status.