Back to docs

API Reference

The LuaCrypt API allows you to validate keys, deliver scripts, and manage your account programmatically.

Base URL
https://luacrypt.dev/api

Validate Key

POST/validate

Validates a license key and optionally binds it to a HWID.

Request body:

{
  "key": "XXXX-XXXX-XXXX-XXXX",    // required - the license key
  "hwid": "USER_HARDWARE_ID",       // optional - hardware ID for binding
  "project": "project-slug"         // optional - project identifier
}

Response (200):

{
  "valid": true,
  "user": "username",
  "plan": "pro",
  "expires_at": "2025-12-31T23:59:59Z",
  "hwid_locked": true
}

Response (403):

{
  "valid": false,
  "reason": "Key expired / HWID mismatch / Key not found"
}

Load Script

GET/scripts/:id/load

Fetches the obfuscated script content for execution.

Query parameters:

// Optional: key for key-gated scripts
GET https://luacrypt.dev/api/scripts/abc123/load?key=XXXX-XXXX-XXXX-XXXX

Example (Roblox):

local scriptUrl = "https://luacrypt.dev/api/scripts/abc123/load"
local scriptContent = game:HttpGet(scriptUrl)
loadstring(scriptContent)()

Generate Keys (Authenticated)

POST/keys

Requires authentication with your API key (found in your dashboard settings).

Request headers:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Request body:

{
  "project_id": "project-uuid",
  "count": 10,
  "prefix": "MYKEY",
  "expires_in_days": 30,
  "hwid_locked": true
}

Rate Limiting

API requests are rate-limited based on your plan: Free: 60 req/min | Pro: 300 req/min | Premium: 1000 req/min. Rate limit headers are included in every response.