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 promijenite endpoint i ključ.

Endpoint i autentifikacija

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

Kako da dobijete ključ: u kontrolnoj ploči otvorite Tools → API. Ključ se automatski pravi kada prvi put otvorite tu stranicu. Odatle ga možete prikazati, kopirati ili generirati ponovo (Regenerate). Kada generirete novi ključ, stari odmah prestaje da radi.

API narudžbe podležu istim pravilima za stanje i provjeru kao narudžbe iz kontrolne ploče. 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 narudžbe sa vašim stanjem. Držite ga samo na svom serveru. Nikada ga ne stavljajte u JavaScript u pregledniku, mobilne aplikacije ili javne repozitorijume. Ako procuri, odmah ga generirite ponovo u kontrolnoj ploči. 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 narudžbe (ili više njih)
multi_statusorders (razdvojeni zarezom)Statusi po ID-u narudžbe
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
typestringUvijek "Default"
categorystringNaziv kategorije
ratestringCijena za 1000 u USD, 4 decimale
min, maxstringMinimalna i maksimalna količina
refillbooleanDa li usluga podržava dopune
cancelbooleanDa li usluga podržava zahtjeve za otkazivanje
dripfeedbooleanOznaka za drip-feed
needs_custom_textbooleanAko je true, uz add pošaljite comments

Primjer odgovora (vrijednosti 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 narudžbe

ParametarObavezanOpis
servicedaID usluge (integer) iz services
linkdaCiljno korisničko ime ili link. Za TikTok Live usluge: @username ili https://www.tiktok.com/@username
quantityda*Cijeli broj između vrijednosti 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, narudžba 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 vrijednost order koristite za status, refill i cancel. Ručne usluge vraćaju ID narudžbe kao string i "manual": true, na primjer {"order": "3f2c...", "manual": true, "charge": "5.0000"}.

Prilagođeni komentari (JSON tijelo)

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: provjera narudžbe

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 primjer Pending, In progress, Completed, Partial, Canceled).
  • remains je broj koji dobavljač još nije isporučio, ili null ako nije poznat. start_count je trenutno uvijek null.
  • Nepoznat ID narudžbe vraća {"error": "not found"}.
  • Svaki poziv za status traži svjež status od dobavljača, zato nemojte provjeravati status u brzoj petlji.

multi_status: provjera više narudžba

Pošaljite orders kao spisak razdvojen zarezima (radi i razdjelnik |). 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: provjera 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š zahtjev se prosljeđuje dobavljaču, a njegov odgovor vraća se nepromijenjen. 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: narudžbe koje su počele ne mogu se otkazati.

Greške

Greške koriste HTTP statusne kodove sa JSON tijelom. Većina izgleda kao {"detail": {"error": "message"}}. Neke koriste običan string, na primjer {"detail": "Invalid API key"}. Uvijek provjerite 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 narudžbu
403Račun je suspendiran 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 narudžbom prijavljuje se kao {"error": "..."} za tu narudžbu, uz HTTP 200.

Primjer 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 promijenljivoj okruženja ili menadžeru tajni, nikada u frontend kodu.
  • Generirite novi ključ ako mislite da je otkriven, ili kada neko ko ima pristup napusti vaš tim.
  • Redovno čitajte services. Cijene i dostupnost se mijenjaju.
  • Poštujte pravilo jedne narudžbe po linku. Pogledajte Narudžbe.
  • Provjeravajte statuse u razumnom intervalu, na primjer na svakih nekoliko minuta, po mogućnosti sa multi_status.