API

This is the Axle site API. It is not the compiler manual.

Obfuscate

POST/api/obfuscate

Send JSON. Every protection defaults to off when the field is false or missing. Sign in and the browser sends your session. A script or another server sends Authorization: Bearer axle_… with the key from the dashboard. A free key can obfuscate 100 times a day. The count resets at 00:00 UTC.

JSON · request body
{
  "source": "print(1)",
  "preset": "SWIFT",
  "profile": "sunc-full",
  "generation": 1,
  "compress": "never",
  "strings": false,
  "numbers": false,
  "stripNames": false,
  "mba": "off",
  "fastRuntime": false,
  "antiTamper": false
}
FieldValues
sourceLua or Luau text, required, 512 KiB max
presetSWIFT, BALANCED, HARDENED. Default SWIFT
profilesunc-full, unc-lite, roblox-studio
generation1 to 65535. 1 keeps the layout. 2 and up remix it
compressnever, auto, loadstring
stringsnumbersstripNamesfastRuntimeinlineunrollmacrosbooleans, default false
mbaoff, light, on
antiTamperboolean. Applied only on HARDENED
watermarklicenseKeyserverLockbooleans. License and server lock need license and host
noncejobencfuncempty, or at least 16 characters
precheckprecheckFromprecheckFrom is place or hwid

Result

A 200 response is JSON with these fields.

FieldContents
luaThe obfuscated script
presetprofilegenerationWhat the build used
seedThe seed behind this layout
tokenHARDENED only. The first line of lua sets _ak to this token

Errors

StatusMeaning
400Bad body, or the compiler rejected the script
401Not signed in and no valid key sent
413Script over 512 KiB
429The daily limit is spent
502The compiler did not answer

Auth

/api/auth/* is Better Auth. The account routes are below.

GET/api/me

Returns the signed-in email, key prefix, and today’s remaining count.

POST/api/keys

Creates the key, or rotates it when the body is {"rotate":true}. The full key is in that response only.