Vanguard

Documentation

Everything you need to integrate Vanguard into your game.

Webhooks

Create, manage, and send webhook requests through Vanguard's secure proxy.

Manage Webhooks

GET/api/v1/serverside/webhook/{serversideId}

List all webhooks for a serverside.

POST/api/v1/serverside/webhook/create

Create a new webhook linked to a Discord webhook URL.

json
{
  "serversideId": "ss_abc123",
  "url": "https://discord.com/api/webhooks/123456/abcdef",
  "name": "Player Events"
}
PUT/api/v1/serverside/webhooks/{webhookId}

Update a webhook's URL, name, or settings.

DELETE/api/v1/serverside/webhooks/{webhookId}

Delete a webhook.

Webhook Templates

Templates let you pre-configure embed layouts and inject secure variables automatically.

GET/api/v1/serverside/webhook/template

List all templates for a webhook.

POST/api/v1/serverside/webhook/template/create

Create a new webhook template with embedded variables.

DELETE/api/v1/serverside/webhook/template/delete

Delete a webhook template.

Secure Variables

Use these template variables in your webhook body. They are server-signed and cannot be tampered with by clients.

{{vanguard.player_name}}Verified player username
{{vanguard.player_id}}Verified player Roblox ID
{{vanguard.game_id}}Game universe ID
{{vanguard.server_id}}Server job ID
{{vanguard.timestamp}}UTC timestamp
{{vanguard.request_id}}Unique request identifier

Example: Sending a webhook

lua
local HttpService = game:GetService("HttpService")
local PROXY = "https://vapi.exoliner.wtf/v1/webhook/proxy/YOUR_SERVER_ID"

local data = {
    content = "",
    embeds = {{
        title = "Player Joined",
        description = "A verified player has joined the game.",
        color = 65416,
        fields = {
            { name = "Player", value = "{{vanguard.player_name}}", inline = true },
            { name = "Game", value = "{{vanguard.game_id}}", inline = true },
        },
        timestamp = "{{vanguard.timestamp}}"
    }}
}

local success, err = pcall(function()
    HttpService:PostAsync(PROXY, HttpService:JSONEncode(data))
end)

if not success then
    warn("Webhook failed:", err)
end
Success Response — 200
{
  "success": true,
  "message": "Webhook delivered successfully"
}
Error Response — 403
{
  "success": false,
  "error": "Game validation failed",
  "message": "Request origin could not be verified"
}
Never expose your raw Discord webhook URL in client-side scripts. Always use the Vanguard proxy endpoint.