Getting started

Every account gets an API key from the dashboard. Send it with every request in the Authorization header, and Wasp will queue, run, and return your build.

Authentication

Generate a key from your dashboard, then include it as a bearer token on every request:

Authorization: Bearer wasp_live_xxxxxxxxxxxxxxxx

Keys are scoped to your account and plan. Rotate a key any time from the dashboard — the old one stops working immediately.

Obfuscate a script

Send your source as JSON to start a build:

curl https://api.wasp.dev/v1/obfuscate \ -H "Authorization: Bearer wasp_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "source": "local function f() return 1 end", "preset": "max", "vm": "auto" }'
fieldtypedescription
sourcestringRaw Luau source to obfuscate.
presetstringlight, balanced, or max. Controls how many layers run.
vmstringauto picks a virtualization implementation per build, or pass a specific implementation id.

Response shape

{ "id": "bld_9f2a1c", "status": "complete", "output": "-- obfuscated source --", "layers": ["virtualize", "flatten", "encrypt_strings", "minify"], "watermark": "wm_3c9d2e" }

Large builds run asynchronously — poll GET /v1/builds/:id until status is complete.

Errors

statusmeaning
401Missing or invalid API key.
402Build limit reached for your plan.
422Source failed to parse.
429Too many requests — see rate limits below.

Rate limits

Community keys are limited to 10 requests per minute; Pro and Enterprise keys scale with your plan. The current limit and remaining count are returned on every response via X-RateLimit-Limit and X-RateLimit-Remaining.