Documentazione API del pannello SMM
Con l'API standard del pannello SMM v2 ordini i servizi 4SNS PLUS dal tuo bot Telegram o dal tuo pannello.
Che cos'è l'API di un pannello SMM?
L'API di un pannello SMM permette a un programma di ottenere l'elenco dei servizi, inviare ordini e controllare stato degli ordini e saldo senza passare dal sito. 4SNS PLUS supporta il formato standard API v2 dei pannelli SMM usato da molti pannelli e bot: il codice che hai già collegato a un altro pannello funziona subito, basta cambiare URL e chiave.
Prezzi e saldo dell'API sono gli stessi del sito. Il rate nella risposta di services corrisponde al prezzo per 1,000 (dollari USA) del listino, e gli ordini inviati con add vengono scalati dal saldo esattamente come gli ordini web e compaiono anche nello storico ordini della tua dashboard. Gli importi restituiti da ordini annullati o parziali tornano sullo stesso saldo.
Nozioni di base
| Endpoint | https://4snsplus.com/api/v2 |
| Metodo | POST |
| Formato della richiesta | Campi di form (application/x-www-form-urlencoded, multipart) o un body JSON |
| Risposta | JSON; anche gli errori arrivano come HTTP 200 con un campo error |
| Autenticazione | Parametro key (la tua chiave API) in ogni richiesta |
| Limite di richieste | 300 richieste al minuto per chiave |
| Valuta | Dollaro USA (USD) |
Esempio di richiesta
curl -X POST https://4snsplus.com/api/v2 \ -d key=YOUR_API_KEY \ -d action=balance
import requests
r = requests.post("https://4snsplus.com/api/v2", data={
"key": "YOUR_API_KEY",
"action": "add",
"service": 2210,
"link": "https://t.me/yourchannel",
"quantity": 1000,
})
print(r.json()) # {"order": 31877} or {"error": "..."}Come ottengo una chiave API?
Quando la prima ricarica è accreditata sul saldo, puoi creare una chiave API dal menu Chiave API della tua dashboard. La chiave viene mostrata una sola volta al momento della creazione, quindi conservala in un posto sicuro. Creando una nuova chiave, quella precedente viene disattivata subito.
La chiave è separata dal token del tuo account. Nel bot o sul server inserisci solo la chiave API, mai il token dell'account. Se pensi che la chiave sia stata esposta, crea semplicemente una nuova chiave nella schermata Chiave API.
Elenco servizi (services)
Restituisce tutti i servizi che puoi ordinare. rate è il prezzo per 1,000 (USD); quando type è Package è il prezzo di un pacchetto. Quando type è Custom Comments invii un elenco di commenti al posto della quantità. category è il nome della piattaforma più il nome del gruppo.
| Parametro | Descrizione |
|---|---|
| key | La tua chiave API |
| action | services |
Esempio di risposta
[
{
"service": 2210,
"name": "Members - 30 Days Non Drop - 30 Days Refill",
"type": "Default",
"category": "Telegram - Members (30 Days Non Drop)",
"rate": "1.4300",
"min": "100",
"max": "50000",
"refill": true,
"cancel": false
}
]Inviare un ordine (add)
Invia un ordine e scala l'importo dal saldo. L'importo è il prezzo per 1,000 moltiplicato per la quantità; per Package è il prezzo del pacchetto e per Custom Comments la quantità è il numero di righe di commento. Gli ordini sono disponibili per gli account con la prima ricarica accreditata. order nella risposta è l'ID del tuo ordine.
| Parametro | Descrizione |
|---|---|
| key | La tua chiave API |
| action | add |
| service | ID del servizio (service da services) |
| link | Link pubblico. Per Telegram: t.me/name, link di invito privato t.me/+code, post t.me/name/123, bot t.me/botname. Va bene anche @name |
| quantity | Quantità (tra min e max). Non serve per Package e Custom Comments |
| comments | Solo Custom Comments. Un commento per riga, fino a 10,000 righe, fino a 500 caratteri per riga |
Esempio di risposta
{
"order": 31877
}Stato dell'ordine (status)
Lo stato di un ordine. charge è l'importo effettivamente pagato dopo i rimborsi (USD, 6 decimali), start_count è il conteggio all'avvio dell'ordine e remains è la quantità non ancora consegnata.
| Parametro | Descrizione |
|---|---|
| key | La tua chiave API |
| action | status |
| order | ID ordine |
Esempio di risposta
{
"charge": "1.430000",
"start_count": "8120",
"status": "In progress",
"remains": "410",
"currency": "USD"
}Stato di più ordini (status, orders)
Controlla fino a 100 ordini insieme, con gli ID ordine separati da virgole. Gli ID inesistenti o non presenti sul tuo account ricevono un errore al loro posto.
| Parametro | Descrizione |
|---|---|
| key | La tua chiave API |
| action | status |
| orders | Elenco di ID ordine, per esempio 1,10,100 |
Esempio di risposta
{
"1": { "charge": "0.300000", "start_count": "120", "status": "Completed", "remains": "0", "currency": "USD" },
"10": { "error": "Incorrect order ID" }
}Richiedere un refill (refill)
Per un ordine di un servizio con periodo di refill concluso come Completed o Partial, invia la richiesta entro il periodo di refill calcolato dalla fine dell'ordine. Ogni ordine può avere una richiesta aperta alla volta, con 24 ore tra una richiesta e l'altra.
| Parametro | Descrizione |
|---|---|
| key | La tua chiave API |
| action | refill |
| order | ID ordine |
Esempio di risposta
{
"refill": 512
}Stato del refill (refill_status)
Lo stato di una richiesta di refill.
| Parametro | Descrizione |
|---|---|
| key | La tua chiave API |
| action | refill_status |
| refill | ID refill (refill dalla risposta di refill) |
Esempio di risposta
{
"status": "Completed"
}Saldo (balance)
Il tuo saldo (USD, 6 decimali).
| Parametro | Descrizione |
|---|---|
| key | La tua chiave API |
| action | balance |
Esempio di risposta
{
"balance": "84.120000",
"currency": "USD"
}Valori dello stato ordine
| Pending | Ricevuto. In fase di inoltro, in attesa di avvio, oppure un operatore sta verificando l'esito dell'inoltro |
| In progress | In consegna |
| Completed | Consegnato per intero |
| Partial | Consegnato in parte. La parte non consegnata viene rimborsata sul saldo |
| Canceled | Non consegnato. Rimborso completo sul saldo |
Valori dello stato refill
| Pending | Richiesta di refill ricevuta |
| In progress | Refill in consegna |
| Completed | Refill consegnato |
| Rejected | La richiesta di refill non è stata accettata |
Messaggi di errore
Gli errori arrivano come JSON con un campo error in una risposta HTTP 200. Nel tuo codice controlla prima il campo error.
{
"error": "Not enough funds on balance"
}| Invalid API key | Chiave mancante, errata o sostituita da una nuova chiave |
| Too many requests | Più di 300 richieste al minuto. Riprova tra poco |
| Incorrect action | Il valore di action non è nell'elenco sopra |
| Add funds first | Ordine da un account la cui prima ricarica non è ancora accreditata |
| Incorrect service ID | Nessun servizio ordinabile con questo ID |
| Incorrect link | Link vuoto o non è un indirizzo web |
| Quantity out of range | Quantità sotto il minimo o sopra il massimo |
| Incorrect comments | Custom Comments vuoti o oltre 10,000 righe o 500 caratteri per riga |
| Not enough funds on balance | Saldo inferiore all'importo dell'ordine. Ricarica e ordina di nuovo |
| Incorrect order ID | Questo ID ordine non è sul tuo account |
| Refill is not available for this service | Il servizio non ha un periodo di refill |
| Order is not finished yet | Il refill è disponibile quando l'ordine è Completed o Partial |
| Refill period has ended | Il periodo di refill, calcolato dalla fine dell'ordine, è scaduto |
| Refill already requested | Questo ordine ha già una richiesta di refill aperta |
| Refill already requested, try again later | Non sono ancora passate 24 ore dall'ultima richiesta |
| Incorrect refill ID | Questo ID refill non è sul tuo account |
Come collego l'API di un pannello SMM a un bot Telegram?
1. Salva l'elenco dei servizi
Chiama services alcune volte al giorno e salva ID servizio, nome, rate, min e max nei tuoi dati. Calcola il prezzo da mostrare ai clienti aggiungendo il tuo margine al rate e usa l'ID servizio salvato così com'è quando ordini.
2. Controlla quantità e link prima di ordinare
Verificare prima che la quantità sia tra min e max e che il link sia in formato t.me riduce gli errori Quantity out of range e Incorrect link. Conviene anche controllare il saldo in anticipo con balance.
3. Controlla lo stato a blocchi
Controlla gli ordini in corso ogni pochi minuti a blocchi di 100 con il parametro orders. Così resti ampiamente nel limite di 300 richieste al minuto per chiave. Quando un ordine diventa Completed, Partial o Canceled, comunica il risultato al tuo cliente.
4. Chiedi il refill solo per ordini conclusi
Quando un ordine di un servizio con refill diventa Completed o Partial, puoi inviare refill. Salva l'ID refill dalla risposta e segui l'avanzamento con refill_status.
