API Reseller Anti-DDoS

Documentazione API completa per gestire la protezione Anti-DDoS. Configura filtri, monitora attacchi e gestisci regole di protezione.

Autenticazione

Tutte le richieste alle API devono includere le seguenti intestazioni per l'autenticazione:

API Key

La tua API key viene fornita quando diventi un reseller. Includila in ogni richiesta:

X-API-KEY: your_key_here

API Playground

Testa gli endpoint API con le tue credenziali. Inserisci la tua API key e prova le richieste.

Recupera l'elenco delle applicazioni disponibili (protocolli e servizi come Minecraft, TCP, UDP).

URL Richiesta

GET https://api.xeniahosting.com/reseller-api/antiddos/applications
https://api.xeniahosting.com/reseller-api/antiddos/applications

Endpoint API

GET
/reseller-api/antiddos/applications

Recupera l'elenco delle applicazioni disponibili (protocolli e servizi come Minecraft, TCP, UDP).

Example Request

curl -X GET "https://api.xeniahosting.com/reseller-api/antiddos/applications" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "data": [
    {
      "app_id": 1,
      "name": "Minecraft",
      "note": "Java Protocol",
      "protocol": "TCP"
    },
    {
      "app_id": 2,
      "name": "HTTP",
      "note": "Web Server",
      "protocol": "TCP"
    }
  ]
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
GET
/reseller-api/antiddos/attacks

Recupera l'elenco degli attacchi mitigati sul servizio. Supporta paginazione e ricerca per parola chiave (indirizzo IP o timestamp).

Parameters

NameTypeRequiredDescription
pageintegerOptionalNumero di pagina (predefinito: 1, minimo: 1)
max_viewintegerOptionalElementi per pagina (predefinito: 10, max: 100, imposta a 0 per tutti)
keywordstringOptionalParola chiave per la ricerca, può essere un indirizzo IP o un timestamp

Example Request

curl -X GET "https://api.xeniahosting.com/reseller-api/antiddos/attacks?page=1&max_view=10&keyword=192.168.1.1" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "data": [
    {
      "attack_id": 1,
      "ip": "192.168.1.1",
      "started_at": "2025-09-06 10:23:00",
      "ended_at": "2025-09-06 10:25:00",
      "maximum_peak": "1.5 Gbps",
      "raw_maximum_peak": 187500000,
      "flags": {
        "flags": [
          "SYN_FLOOD",
          "UDP_FLOOD",
          "ICMP_FLOOD",
          "HANDSHAKE"
        ]
      }
    }
  ],
  "total_rows": 25
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
GET
/reseller-api/antiddos/attacks/{attack_id}

Recupera informazioni dettagliate su un attacco specifico incluso il breakdown delle porte.

Parameters

NameTypeRequiredDescription
attack_idintegerRequiredID attacco (minimo: 1)

Example Request

curl -X GET "https://api.xeniahosting.com/reseller-api/antiddos/attacks/1" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "attack_details": {
    "attack_id": 1,
    "ip": "192.168.1.1",
    "started_at": "2025-09-06 10:23:00",
    "ended_at": "2025-09-06 10:25:00",
    "maximum_peak": "1.5 Gbps",
    "flags": "SYN,ACK"
  },
  "attack_ports": [
    {
      "port": 80,
      "protocol_name": "TCP",
      "packets_peak": 1000000
    },
    {
      "port": 443,
      "protocol_name": "TCP",
      "packets_peak": 500000
    }
  ]
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
404Attacco non trovato
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
GET
/reseller-api/antiddos/overview

Ottiene l'overview degli attacchi. L'IP in query_ip deve appartenere al reseller e non può essere .0, .1, o .255.

Parameters

NameTypeRequiredDescription
overview_periodstringOptionalPeriodo di panoramica (10m, 1h, 1d, 1w) - predefinito: 10m
query_ipstringOptionalFiltra per IP o CIDR (opzionale, formato IPv4)

Example Request

curl -X GET "https://api.xeniahosting.com/reseller-api/antiddos/overview?overview_period=1h&query_ip=192.168.1.1" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "bandwidth_data": [
    {
      "time": "2025-09-06T10:23:00Z",
      "total_pass_traffic": "1.22",
      "total_drop_traffic": "0.38"
    }
  ],
  "pass_unit": "Kb",
  "drop_unit": "Kb"
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
GET
/reseller-api/antiddos/prefixes

Ottiene i prefissi assegnati al reseller. Restituisce esattamente quello che c'è nel database: subnet (es. 2.58.84.0/24), range (es. 38.211.244.239-254), o IP singoli (es. 31.57.112.2).

Example Request

curl -X GET "https://api.xeniahosting.com/reseller-api/antiddos/prefixes" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "message": "Service prefixes retrieved successfully",
  "data": [
    "192.168.1.0/24",
    "10.0.0.0/8"
  ]
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
GET
/reseller-api/antiddos/rules

Recupera l'elenco delle regole. Se keyword è un IP valido, verrà verificato che appartenga al reseller.

Parameters

NameTypeRequiredDescription
pageintegerOptionalNumero di pagina (predefinito: 1, minimo: 1)
max_viewintegerOptionalElementi per pagina (predefinito: 10, max: 100, imposta a 0 per tutti)
keywordstringOptionalParola chiave per la ricerca, può essere un indirizzo IP, protocollo o nome applicazione

Example Request

curl -X GET "https://api.xeniahosting.com/reseller-api/antiddos/rules?page=1&max_view=10&keyword=Minecraft" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "data": [
    {
      "rule_id": 1,
      "ip": "192.168.1.1",
      "port": 80,
      "protocol": "TCP",
      "name": "Minecraft",
      "internal_state": "working"
    }
  ],
  "total_rows": 150
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
POST
/reseller-api/antiddos/rules

Crea una nuova regola. L'IP deve appartenere al reseller e non può essere .0, .1, o .255. La porta deve essere tra 1 e 65535. Il protocollo deve essere TCP o UDP.

Parameters

NameTypeRequiredDescription
application_idintegerRequiredID applicazione (minimo: 1)
ipstringRequiredIndirizzo IP (formato IPv4)
portintegerRequiredNumero di porta (1-65535)
protocolstringRequiredProtocollo (TCP o UDP)

Example Request

curl -X POST "https://api.xeniahosting.com/reseller-api/antiddos/rules" \
  -H "Authorization: Bearer " \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "application_id=1&ip=192.168.1.1&port=25565&protocol=TCP"

Example Response

{
  "status": "success",
  "message": "Rule created successfully"
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
PUT
/reseller-api/antiddos/rules/{rule_id}

Aggiorna una regola esistente. Se viene modificato l'IP, deve appartenere al reseller e non può essere .0, .1, o .255.

Parameters

NameTypeRequiredDescription
rule_idintegerRequiredID regola (minimo: 1)
application_idintegerOptionalID applicazione (opzionale, minimo: 1)
ipstringOptionalIndirizzo IP (opzionale, formato IPv4)
portintegerOptionalNumero di porta (opzionale, 1-65535)
protocolstringOptionalProtocollo (opzionale, TCP o UDP)

Example Request

curl -X PUT "https://api.xeniahosting.com/reseller-api/antiddos/rules/1" \
  -H "Authorization: Bearer " \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "port=25566&protocol=UDP"

Example Response

{
  "status": "success",
  "message": "Rule updated successfully"
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
404Regola non trovata
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
DELETE
/reseller-api/antiddos/rules

Elimina regole. Se viene specificato solo l'IP, elimina tutte le regole per quell'IP. Se vengono specificati IP, porta e protocollo, elimina la regola specifica.

Parameters

NameTypeRequiredDescription
ipstringOptionalIndirizzo IP per cui eliminare le regole
portintegerOptionalNumero di porta (richiesto se sono specificati IP e protocollo)
protocolstringOptionalProtocollo: TCP o UDP (richiesto se sono specificati IP e porta)

Example Request

curl -X DELETE "https://api.xeniahosting.com/reseller-api/antiddos/rules?ip=38.211.244.239" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "message": "Rules deleted successfully"
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
403Vietato - L'IP non appartiene al reseller
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}
DELETE
/reseller-api/antiddos/rules/{rule_id}

Elimina una regola per ID. Verifica che l'IP della regola appartenga al reseller prima di eliminare.

Parameters

NameTypeRequiredDescription
rule_idintegerRequiredID regola (minimo: 1)

Example Request

curl -X DELETE "https://api.xeniahosting.com/reseller-api/antiddos/rules/1" \
  -H "Authorization: Bearer "

Example Response

{
  "status": "success",
  "message": "Rule deleted successfully"
}

Error Codes

400Richiesta non valida
401Non autorizzato - API key non valida
404Regola non trovata
429Rate limit superato
500Errore interno del server
{
  "status": "error",
  "message": "Error description"
}

Esempi di Codice

Esempi di codice per integrare le API Anti-DDoS in diversi linguaggi di programmazione:

curl -X GET "https://api.xeniahosting.com/reseller-api/antiddos/applications" \
  -H "X-API-KEY: your_key_here"

Rate Limiting

Le API hanno limiti di rate per garantire stabilità e prestazioni. Il limite predefinito è di 100 richieste al minuto per API key.

200Richiesta riuscita
429Rate limit superato - attendi prima di fare altre richieste

Gestione Errori

Tutte le risposte di errore seguono questo formato:

{
  "status": "error",
  "message": "Error description"
}

XeniaHosting è un Provider di Hosting, con location in Italia e Paesi Bassi.
Offriamo Hardware e Reti di ultima generazione, con protezioni Anti-DDoS di alto livello.

P.IVA: IT01849280191 - REA: CR-337979 - Capitale Sociale €10.000
Società sotto direzione e coordinamento di XeniaGroup SRL

© XeniaHosting 2022-2026 - Tutti i diritti riservati.