Najważniejsze wnioski
Format żądań standardowego API v2 panelu SMM, jego 6 akcji, przykładowe odpowiedzi, komunikaty błędów i limity żądań, napisane dla resellerów.
API panelu SMM to połączenie, które automatycznie składa zamówienia i sprawdza ich status z innego panelu lub Twojego własnego programu. 1PANEL PLUS używa standardowego API v2 panelu SMM, więc jeśli masz już kod połączony z innym panelem, wystarczy zmienić adres i klucz, aby od razu się połączyć. API i strona używają tych samych usług, tych samych cen za 1,000 i tego samego salda.
Kto korzysta z API panelu SMM?
- Resellerzy: wystawiają usługi na własnym panelu i automatycznie przekazują zamówienia klientów
- Agencje: składają zamówienia dla wielu kanałów naraz o ustalonych porach
- Programiści: tworzą skrypty, które zamawiają przy starcie transmisji lub publikacji nowego filmu
- Operatorzy: zbierają saldo i statusy zamówień we własnym pulpicie
Jak dostanę klucz API?
Utwórz go na ekranie Klucz API w panelu klienta po zaksięgowaniu pierwszego doładowania. Klucz jest widoczny tylko raz, w chwili tworzenia, więc od razu go skopiuj i przechowuj w bezpiecznym miejscu. Gdy utworzysz nowy klucz, stary natychmiast przestaje działać, więc jeśli uważasz, że klucz wyciekł, po prostu utwórz nowy w jego miejsce.
Jak wysyłać żądania API?
Wysyłaj każde żądanie metodą POST na jeden adres https://1panelplus.com/api/v2. Użyj tego, co wolisz: pól formularza (application/x-www-form-urlencoded lub multipart) albo treści JSON (Content-Type: application/json), i dołączaj key oraz action do każdego żądania. Wszystkie odpowiedzi są w JSON.
Przykładowe żądanie (pola formularza): key=YOUR_API_KEY&action=balance
Przykładowe żądanie (JSON): {"key": "YOUR_API_KEY", "action": "balance"}
| action | Wysyłane wartości | Zwracane wartości |
|---|---|---|
| services | Brak | Lista usług |
| add | service, link, quantity lub comments | order (ID zamówienia) |
| status | Jedno order lub orders (do 100, rozdzielone przecinkami) | charge, start_count, status, remains, currency |
| refill | order | refill (ID refillu) |
| refill_status | refill | status |
| balance | Brak | balance, currency |
- action
- services
- Wysyłane wartości
- Brak
- Zwracane wartości
- Lista usług
- action
- add
- Wysyłane wartości
- service, link, quantity lub comments
- Zwracane wartości
- order (ID zamówienia)
- action
- status
- Wysyłane wartości
- Jedno order lub orders (do 100, rozdzielone przecinkami)
- Zwracane wartości
- charge, start_count, status, remains, currency
- action
- refill
- Wysyłane wartości
- order
- Zwracane wartości
- refill (ID refillu)
- action
- refill_status
- Wysyłane wartości
- refill
- Zwracane wartości
- status
- action
- balance
- Wysyłane wartości
- Brak
- Zwracane wartości
- balance, currency
Jak pobrać listę usług przez services?
Wyślij action=services, a dostaniesz wszystkie usługi w sprzedaży jako tablicę. Każda usługa zawiera service (ID usługi), name, type, category, rate, min, max, refill i cancel. rate to cena za 1,000 (USD); gdy type to Package, jest to cena jednego pakietu. refill ma wartość true dla usług z okresem refillu, a cancel zawsze false. category zawiera razem nazwę platformy i kategorię, więc odtworzysz kategorie na własnym panelu bez zmian.
Przykładowa odpowiedź: [{"service": SERVICE_ID, "name": "Nazwa usługi", "type": "Default", "category": "YouTube - Nazwa kategorii", "rate": "Cena za 1,000", "min": "Minimalna ilość", "max": "Maksymalna ilość", "refill": true, "cancel": false}]
Ceny i usługi mogą się zmieniać, więc jako reseller warto pobierać services ponownie w ustalonych odstępach i synchronizować ceny oraz minimalne i maksymalne ilości na swoim panelu.
Jak złożyć zamówienie przez add?
Wyślij action=add z service (ID usługi), link (publiczny link) i quantity, a zamówienie zostanie złożone, a koszt od razu pobrany z salda. order w odpowiedzi to ID zamówienia; zapisz je i używaj w status i refill. Zamówienia można składać z kont z zaksięgowanym pierwszym doładowaniem.
- Zwykłe usługi: wyślij service, link i quantity
- Usługi Custom Comments: wyślij comments zamiast quantity. Jeden komentarz w linii, do 500 znaków w linii, a liczba linii to ilość
- Usługi Package: ilość nie jest potrzebna. Zamówienie dotyczy jednego pakietu
Przykładowe żądanie: key=YOUR_API_KEY&action=add&service=SERVICE_ID&link=https://www.youtube.com/watch?v=videoid&quantity=1000
Przykładowa odpowiedź: {"order": ORDER_ID}
Jak sprawdzić status zamówienia przez status?
Wyślij action=status z order (jedno ID zamówienia), aby dostać status tego zamówienia, albo wyślij orders z ID zamówień połączonymi przecinkami, aby sprawdzić do 100 naraz. Jeśli zarządzasz wieloma zamówieniami, grupowanie ich w orders oszczędza mnóstwo żądań.
Przykładowa odpowiedź (jedno): {"charge": "Pobrana kwota", "start_count": "Licznik startowy", "status": "In progress", "remains": "Pozostała ilość", "currency": "USD"}
Przykładowa odpowiedź (wiele): {"ORDER_ID_1": {"charge": "...", "start_count": "...", "status": "Completed", "remains": "0", "currency": "USD"}, "ORDER_ID_2": {"error": "Incorrect order ID"}}
| Wartość status | Znaczenie |
|---|---|
| Pending | Przyjęte i czeka na start lub przechodzi do realizacji |
| In progress | W trakcie dostarczania |
| Completed | Dostarczone w całości |
| Partial | Dostarczono część, a reszta kwoty wróciła na saldo |
| Canceled | Nie udało się zrealizować, a cała kwota wróciła na saldo |
- Wartość status
- Pending
- Znaczenie
- Przyjęte i czeka na start lub przechodzi do realizacji
- Wartość status
- In progress
- Znaczenie
- W trakcie dostarczania
- Wartość status
- Completed
- Znaczenie
- Dostarczone w całości
- Wartość status
- Partial
- Znaczenie
- Dostarczono część, a reszta kwoty wróciła na saldo
- Wartość status
- Canceled
- Znaczenie
- Nie udało się zrealizować, a cała kwota wróciła na saldo
charge to zapłacona kwota minus zwroty, więc po zamówieniu częściowym lub anulowanym od razu widzisz faktycznie wydaną kwotę. Statusy zamówień aktualizują się automatycznie mniej więcej co minutę, więc sprawdzanie status mniej więcej co minutę w zupełności wystarczy.
Jak używać refill i refill_status?
Wyślij action=refill z order, aby poprosić o refill, a dostaniesz refill (ID refillu). Prośba jest przyjmowana dla zamówień zrealizowanych w całości lub częściowo w usługach z okresem refillu, w okresie refillu liczonym od dnia zakończenia zamówienia, gdy nie trwa inny refill i od ostatniej prośby minęły 24 godziny. Wyślij action=refill_status z refill, a dostaniesz status: Pending, In progress, Completed lub Rejected.
Przykładowe odpowiedzi: {"refill": REFILL_ID} oraz {"status": "Completed"}
Zasady refillu są takie same jak na stronie. Szczegółowe warunki opisaliśmy w poradniku Okresy refillu wyjaśnione.
Jak sprawdzić saldo przez balance?
Wyślij action=balance, a dostaniesz bieżące saldo i walutę (USD). Jako reseller sprawdzaj saldo przed przekazaniem zamówień i ustaw powiadomienie, gdy spadnie poniżej ustalonej kwoty, aby zamówienia płynęły bez przerw.
Przykładowa odpowiedź: {"balance": "Bieżące saldo", "currency": "USD"}
Co oznaczają komunikaty błędów API?
Błędy wracają jako JSON ze zdaniem po angielsku w polu error. Każde zdanie ma stałą przyczynę, więc Twój program może porównać je bez zmian i obsłużyć.
| Wartość error | Znaczenie |
|---|---|
| Invalid API key | Brak klucza lub klucz jest błędny |
| Too many requests | Przekroczono limit żądań na minutę. Wyślij ponownie za chwilę |
| Add funds first | Zamówisz po zaksięgowaniu pierwszego doładowania |
| Incorrect service ID | To nie jest ID usługi w sprzedaży |
| Incorrect link | Format linku jest nieprawidłowy |
| Quantity out of range | Ilość jest poza zakresem min. i maks. usługi |
| Incorrect comments | Linie komentarzy są puste albo linia ma ponad 500 znaków |
| Not enough funds on balance | Saldo jest niższe niż koszt zamówienia |
| Incorrect order ID | To nie jest ID zamówienia na tym koncie |
| Incorrect refill ID | To nie jest ID refillu na tym koncie |
| Incorrect action | Wartość action nie jest jedną z 6 akcji |
- Wartość error
- Invalid API key
- Znaczenie
- Brak klucza lub klucz jest błędny
- Wartość error
- Too many requests
- Znaczenie
- Przekroczono limit żądań na minutę. Wyślij ponownie za chwilę
- Wartość error
- Add funds first
- Znaczenie
- Zamówisz po zaksięgowaniu pierwszego doładowania
- Wartość error
- Incorrect service ID
- Znaczenie
- To nie jest ID usługi w sprzedaży
- Wartość error
- Incorrect link
- Znaczenie
- Format linku jest nieprawidłowy
- Wartość error
- Quantity out of range
- Znaczenie
- Ilość jest poza zakresem min. i maks. usługi
- Wartość error
- Incorrect comments
- Znaczenie
- Linie komentarzy są puste albo linia ma ponad 500 znaków
- Wartość error
- Not enough funds on balance
- Znaczenie
- Saldo jest niższe niż koszt zamówienia
- Wartość error
- Incorrect order ID
- Znaczenie
- To nie jest ID zamówienia na tym koncie
- Wartość error
- Incorrect refill ID
- Znaczenie
- To nie jest ID refillu na tym koncie
- Wartość error
- Incorrect action
- Znaczenie
- Wartość action nie jest jedną z 6 akcji
Prośby o refill mogą zwrócić Refill is not available for this service (usługa nie ma okresu refillu), Order is not finished yet (zamówienie jeszcze się nie zakończyło), Refill period has ended (okres refillu minął) lub Refill already requested, try again later (trwa refill albo nie minęły 24 godziny).
Ile żądań API mogę wysłać?
Każdy klucz może wysłać do 300 żądań na minutę. Grupuj sprawdzanie statusu w paczki po 100 przez orders i pobieraj listę usług ponownie tylko w razie potrzeby, a zapas będzie spory. Na przykład przy 1,000 trwających zamówień 10 żądań raz na minutę sprawdzi je wszystkie.
Jak resellerzy ustalają ceny sprzedaży?
rate otrzymany przez API to cena 1PANEL PLUS za 1,000, a cenę sprzedaży na własnym panelu reseller ustala sam. Na przykład jeśli do usługi z rate $2.00 doliczysz 25%, sprzedajesz po $2.50 za 1,000; gdy klient zamówi 4,000, Twoja sprzedaż to $10.00, a w 1PANEL PLUS pobierane jest $8.00. Te ceny to przykłady pokazujące wyliczenie.
W jakiej kolejności skonfigurować połączenie API?
- Doładuj saldo i utwórz klucz API w panelu klienta
- Sprawdź klucz i połączenie przez balance
- Pobierz listę usług przez services i wystaw ją na swoim panelu
- Wyślij jedno add z najmniejszą ilością i odbierz ID zamówienia
- Potwierdź przez status, że status się zmienia, a potem włącz automatyczne zamawianie
Przykłady w curl, PHP, Python i Node.js oraz pełne opisy pól znajdziesz w dokumentacji API, a inne pytania w grupie API w FAQ.