Meni dokumentacije

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

Endpointhttps://better-social.pro/api/v2
MetodePOST sa telom u formatu form-urlencoded ili JSON, ili GET sa parametrima u URL-u
Obavezno u svakom zahtevukey (vaš lični API ključ) i action
Format odgovoraJSON
ValutaUSD

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

AkcijaParametri (pored key)Vraća
servicesnemaSpisak dostupnih usluga
addservice, link, quantity, opciono comments{"order": ..., "charge": ...}
statusorder (ili orders)Status jedne porudžbine (ili više njih)
multi_statusorders (razdvojeni zarezom)Statusi po ID-u porudžbine
balancenema{"balance": ..., "currency": "USD"}
refillorder ili ordersOdgovor dobavljača
cancelorder ili ordersOdgovor 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:

PoljeTipZnačenje
serviceintegerID usluge, koristi se u add
namestringNaziv usluge
typestringUvek "Default"
categorystringNaziv kategorije
ratestringCena za 1000 u USD, 4 decimale
min, maxstringMinimalna i maksimalna količina
refillbooleanDa li usluga podržava dopune
cancelbooleanDa li usluga podržava zahteve za otkazivanje
dripfeedbooleanOznaka za drip-feed
needs_custom_textbooleanAko 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

ParametarObavezanOpis
servicedaID usluge (integer) iz services
linkdaCiljno korisničko ime ili link. Za TikTok Live usluge: @username ili https://www.tiktok.com/@username
quantityda*Ceo broj između vrednosti min i max za uslugu
commentsza usluge sa prilagođenim komentarimaObavezno 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
}
  • status stiže od dobavljača (na primer Pending, In progress, Completed, Partial, Canceled).
  • remains je broj koji dobavljač još nije isporučio, ili null ako nije poznat. start_count je trenutno uvek null.
  • 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.

HTTPKada
400Nedostaje 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
401API ključ nedostaje ili nije ispravan
402Nedovoljno stanja za porudžbinu
403Nalog je suspendovan ili je ciljno korisničko ime zaštićeno
404Usluga nije dostupna
502Dobavljač je vratio grešku
503U 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.