Documentation

← Panda Auth

API Reference

Dashboard API

Manage keys, the HWID blacklist, and resets programmatically. All routes use your X-API-Key header; creating, editing, or deleting keys and blacklist entries also requires the allowManageKeys permission.

Full request & response examples in your dashboard

You're viewing the public API reference. Sign in and open Documentation → API Reference in your dashboard for copy-paste curl requests and live response examples for every endpoint.

Generate keys

POST /keys/api/generate

Create one or more generated keys. expirationType is byDays, byDate, or lifetime.

Fetch an active key

GET /keys/api/key

Search an active key by key, hwid, or note.

Edit an active key

PUT /keys/api/key

Update note, hwid, isPremium, noHwidValidation, status, expiresAt, or discordId. Only the fields you send are changed.

Delete an active key

DELETE /keys/api/key

Extend key expiration

POST /keys/api/key/extend-expiration

Add days to a key's expiration. Lifetime keys (no expiry) cannot be extended.

Fetch a generated key

GET /keys/api/generated-key

Search a generated key by key or note.

Edit a generated key

PUT /keys/api/generated-key

Same fields as an active key, plus discordId (the Discord bind carries over when the key is validated). expiresAt cannot be null for generated keys.

Delete a generated key

DELETE /keys/api/generated-key

Check key binding

GET /keys/api/key/binding

Whether a key is HWID-bound. type is active (bound key) or generated (not yet redeemed, never bound).

Discord Bot — fetch by Discord ID

GET /keys/api/key/by-discord

Fetch every key bound to a Discord user — searches both generated and active keys. Pass discordId (required). Add includeLoadstring=1 to also receive your Discord-visible script loadstring(s) when the user has a valid key (built for VSS or Kryptic Vault). Bind a user with the discordId field on the edit endpoints above.

Reset HWID

POST /keys/reset-hwid

Unbinds a key's HWID. Behaves exactly like the self-serve reset page — it honours your dashboard cooldown config, picking the free or premium cooldown automatically.

Keyless — fetch

GET /keys/api/keyless

Look up a keyless (whitelist) entry by hwid.

Keyless — add

POST /keys/api/keyless

Whitelist an HWID. isPremium and expiresAt are optional (defaults to non-premium, 1 year).

Keyless — remove

DELETE /keys/api/keyless

Service info

GET /keys/api/service/info

Service metadata and a snapshot of its settings.

Service status

GET /keys/api/service/status

Live counts: active keys, generated keys, keyless entries, blacklisted HWIDs, and total executions.

Execution — increment

POST /keys/api/execution

Increment the service execution counter (and bump last-active).

Execution — get

GET /keys/api/execution

Send webhook

POST /keys/api/webhook

Post a message to the service's configured Discord webhook. content is required; username is optional. The webhook must be enabled in settings.

Compensate (bulk extend)

POST /keys/api/compensate

Add days (1–365) to every active key — both active and generated.

Update settings

PUT /keys/api/settings

Update the service's webhook URL and toggle. webhookUrl must be a Discord webhook.

Discord server — connect

POST /keys/api/discord/connect

Bind a Discord server to this service. guildId and guildName are required.

Discord server — disconnect

POST /keys/api/discord/disconnect

Public scripts

GET /keys/api/scripts

List the service's Discord-visible scripts with ready-to-run loadstrings (built for VSS or Kryptic Vault automatically).

Blacklist — list

GET /keys/api/blacklist

Paginated list of blacklisted HWIDs. Optional page, limit, search.

Blacklist — add

POST /keys/api/blacklist

Add an HWID. reason and expiresAt are optional (omit expiresAt for a permanent ban).

Blacklist — remove

DELETE /keys/api/blacklist

Blacklist — check

GET /keys/api/blacklist/check

Check whether a single hwid is currently blacklisted.