Riferimento sviluppatori

API HTTP ShieldPlay

Riferimento essenziale per integrazioni dashboard e game agent autenticati. In produzione le richieste usano HTTPS e JSON.

01

Base URL e convenzioni

Base URL API produzione: https://api.shieldplay.it/api/v1. I path seguenti sono relativi a questa base. Invia body JSON con Content-Type: application/json. Risposte corrette usano status 2xx; validazione, autenticazione, autorizzazione e rate limit restituiscono errori 4xx corrispondenti.

Health check
GET https://api.shieldplay.it/health

{ "status": "ok", "timestamp": 1780000000000 }
02

Autenticazione dashboard

EndpointMetodoUso
/auth/registerPOSTCrea account e organizzazione.
/auth/loginPOSTAvvia sessione dashboard.
/auth/logoutPOSTTermina sessione corrente.
/auth/meGETLegge profilo staff e organizzazione autenticata.
/auth/providersGETElenca provider di login attivi.
/auth/google/authorizeGETAvvia Google login se abilitato.
/auth/password-reset/requestPOSTRichiede reset password.
/auth/password-reset/confirmPOSTCompleta reset password.

Il dashboard usa il cookie httpOnly ac_session. I client staff possono inviare anche il JWT corrispondente come Authorization: Bearer <token>. Non incorporare mai token in siti pubblici.

03

Autenticazione agente

Gli agenti Minecraft usano una chiave specifica del server, non una sessione staff. Generala o ruotala dal flusso gestione server, salvala solo nel config.yml del server e inviala nell’header x-api-key.

Header agente
x-api-key: TUA_CHIAVE_SPECIFICA_SERVER
content-type: application/json
04

Ingestione eventi agente

Body minimo violazione
POST https://api.shieldplay.it/api/v1/events/violation

{
  "playerUuid": "00000000-0000-0000-0000-000000000000",
  "playerName": "ExamplePlayer",
  "checkName": "XRayCheck",
  "category": "movement",
  "severity": "MEDIUM",
  "points": 1,
  "metrics": { "review_only": true, "evidence_family": "xray_pattern" }
}
EndpointMetodoScopo payload
/events/heartbeatPOSTAggiorna versione agente, salute runtime e stato connessione.
/events/players/snapshotPOSTInvia snapshot live limitato; massimo 500 giocatori per richiesta.
/events/player/joinPOSTRegistra entrata giocatore.
/events/player/leavePOSTRegistra uscita giocatore.
/events/violationPOSTInvia check, categoria, gravità, punti e metriche strutturate.
/events/staff-accessGETRecupera UUID staff, esenzioni, lingua GUI e override materiali X-Ray.

L’API agente accetta categorie combat, movement, interaction e network. review_only=true impedisce esplicitamente che un segnale sia idoneo da solo a una punizione automatica.

05

Endpoint gestione Owner e staff

Famiglia endpointFunzionalità
/servers e /servers/:id/rotate-keyCrea, elenca e gestisce server; ruota una key compromessa.
/staff-accessLegge accesso staff Minecraft per server.
/staff-access/servers/:serverIdAggiorna roster Owner/Admin.
/staff-access/servers/:serverId/gui-languageImpostazione GUI agente IT/EN riservata Owner.
/staff-access/servers/:serverId/check-exemptionsEsenzioni staff esatte per-check riservate Owner.
/staff-access/servers/:serverId/xray-rare-oresOverride materiali X-Ray monitorati riservato Owner.
/checks, /players, /live-players, /violations, /incidents, /punishmentsDati di revisione e operazioni esposti nel dashboard.
06

API notifiche

Usa /webhooks per creare, modificare, eliminare e testare webhook in uscita dell’organizzazione. Iscrivendo un URL Discord a xray.flagged ricevi un embed X-Ray mention-safe. /discord/channels riguarda l’integrazione separata di canali Discord gestiti.

La consegna è asincrona e non blocca una violazione salvata. I cooldown X-Ray Discord sopprimono messaggi duplicati per webhook nella finestra configurata.

07

Errori, limiti e retry sicuri

Valida l’input prima di riprovare un 400. Aggiorna credenziali staff dopo un 401, verifica ownership o ruolo dopo un 403 e tratta un 404 come risorsa assente o fuori tenant. Per 429 rispetta la finestra di retry e applica backoff esponenziale con jitter. Evita loop stretti dell’agente, mantieni heartbeat ragionevoli e conserva eventi offline per replay controllato.

08

Billing e webhook Stripe

Il billing dashboard usa endpoint /billing. Il webhook Stripe è un endpoint interno server-side e non deve essere chiamato da agenti o browser. Chiavi pagamento e signing secret appartengono solo alle variabili ambiente del server di produzione.

Pronto a collegare il tuo server?

Scarica l’agente Paper e segui l’installazione guidata.

Vai al download