Vuplore logo Vuplore
Sign in

Services / API Documentation

Predator Protection API.

Use the public Vuplore Trust & Safety registry lookup to check a permanent platform user ID before a community action such as a Discord guild join, Roblox server join, manual moderation review, or scheduled safety scan.

Overview

Predator Protection checks whether a user identifier appears in Vuplore's verified Trust & Safety registry. A match is not created by normal support intake. Trust & Safety must review the report, verify the case, and explicitly publish identifiers to the registry.

Reporter identity, screenshots, private victim data, internal notes, and authority packets are never returned by this endpoint.

Base URL

https://vuplore.com/api/trust-safety/predator-protection

The public lookup is read-only and rate limited. Do not send evidence, legal names, addresses, access tokens, cookies, or private community logs to this endpoint.

Lookup endpoint

GET /lookup?platform=discord&userId=1234567890
QueryRequiredDescription
platformYesNormalized platform key, for example discord, roblox, war_thunder, steam, vuplore, or other.
userIdYesPermanent platform identifier. For Discord, send the Discord user ID. For Roblox, send the Roblox user ID.
includeAliasesNoDefaults to true. Set to false when your integration only needs match status and case metadata.
includeStaffNoteNoDefaults to false. Set to true only if your integration stores authority-facing public staff notes.

Response

{ "ok": true, "generatedAt": "2026-07-17T21:33:08Z", "query": { "platform": "discord", "userId": "1234567890" }, "predatorFound": true, "matched": 1, "evidenceIncluded": false, "evidencePolicy": "Evidence, reporter details, private notes, and authority packets are never returned by this public integration endpoint.", "matches": [ { "publicId": "TAS-CS-20260717-ABCDEF12", "status": "reported_to_authorities", "authorityStatus": "pending_report_to_authorities", "concern": "sexual_solicitation_or_grooming_of_minor", "offenderAge": 24, "details": "Public case details set by Trust & Safety.", "staffNote": null, "knownAliases": [ { "platform": "discord", "platformUserId": "1234567890", "username": "example" } ] } ] }

details and staffNote are separate fields. Staff must set staffNote explicitly; it is not copied from report details or internal notes. The API returns staffNote only when includeStaffNote=true.

Statuses

FieldValueMeaning
statusverifiedVuplore Trust & Safety verified the case for public registry publication.
statuspending_report_to_authoritiesThe case is verified and being prepared for an authority report.
statusreported_to_authoritiesVuplore has reported or submitted the case to the relevant authority path.
statushandled_by_authoritiesThe authority path has handled or acknowledged the matter in a way Trust & Safety can record publicly.
authorityStatusrejected_by_authoritiesAn authority path rejected the report. Trust & Safety can still keep internal records where legally justified.

Discord bot example

client.on("guildMemberAdd", async (member) => { const url = new URL("https://vuplore.com/api/trust-safety/predator-protection/lookup"); url.searchParams.set("platform", "discord"); url.searchParams.set("userId", member.id); url.searchParams.set("includeStaffNote", "false"); const response = await fetch(url, { headers: { accept: "application/json" } }); const data = await response.json(); if (data.predatorFound) { await member.ban({ reason: "Vuplore Predator Protection verified registry match" }); } });

Run the lookup on a join event, a manual moderation command, or a scheduled scan. Cache negative results briefly and keep your own audit reason for any moderation action.

Roblox server example

local HttpService = game:GetService("HttpService") local Players = game:GetService("Players") Players.PlayerAdded:Connect(function(player) local url = "https://vuplore.com/api/trust-safety/predator-protection/lookup" .. "?platform=roblox&userId=" .. player.UserId local ok, body = pcall(function() return HttpService:GetAsync(url) end) if ok then local data = HttpService:JSONDecode(body) if data.predatorFound then player:Kick("Safety restriction") end end end)

Call from server-side code only. Do not expose private moderation logic or user reports to clients.

Evidence policy

The public endpoint is intentionally narrow. It returns only public registry metadata and known platform aliases. Evidence remains restricted to authorized Trust & Safety staff and, where appropriate, authorities.

Integrations should treat a match as a safety signal for their own policy workflow. Do not display private accusations to end users, and do not mirror Vuplore evidence into third-party systems.