Eula Org developer API
Protect JavaScript from your own workflow.
A focused REST API, npm client, and CLI for the same production obfuscation engine powering the Eula Org encryptor.
Access is approval-gated
Submit your project details, wait for manual review, then use the secure email link to create API keys. Pending, rejected, or suspended developers cannot call the API.
Request access
Get approved
Create a key
Authentication
Bearer API keys
Send your key in the Authorization header on every request. Keys are shown only once, stored as secure hashes, and can be revoked instantly from the developer dashboard.
curl https://eulacrypt.suhotech.xyz/api/obfuscate \ -H "Authorization: Bearer eula_live_..." \ -H "Content-Type: application/json"
Endpoint
/api/obfuscate
Submit raw JavaScript as JSON or upload a .js file with multipart form data. The response contains the protected output and generated filename.
JSON request
{
"source": "const answer = 42;",
"filename": "input.js",
"level": "medium"
}Response
{
"protectedCode": "⠀⠀⡶⠛...",
"filename": "input.protected.js"
}File upload
curl https://eulacrypt.suhotech.xyz/api/obfuscate \ -H "Authorization: Bearer eula_live_..." \ -F "file=@input.js" \ -F "level=hard"
Options
Protection levels
Light
lightFast minification with renamed identifiers.
- Minification
- Identifier transformation
- Basic string transformations
Medium
mediumBalanced protection for most production code.
- Strong identifier transforms
- String arrays
- String encoding (base64)
- Object key transforms
Hard
hardAggressive transforms that resist tampering.
- Control-flow flattening
- RC4 string protection
- Dead-code injection
- Self-defending code
Extreme
extremeMaximum practical obfuscation. Slower runtime.
- Full control-flow flattening
- Debug protection
- Split strings + RC4
- Numbers to expressions
The API uses the exact same engine and configuration mapping as the website. Obfuscation increases reverse-engineering cost; it is not mathematically unbreakable encryption.
Reliability
Errors and limits
Requests are limited to 30 per API key per minute. Input is capped at 1 MB. Error responses are JSON with an error code and message.
| HTTP | Code | Meaning |
|---|---|---|
| 400 | INVALID_REQUEST | The request body is missing or invalid. |
| 400 | INVALID_PROTECTION_LEVEL | The protection level is not supported. |
| 401 | INVALID_API_KEY | The bearer key is missing, invalid, or revoked. |
| 403 | API_ACCESS_NOT_APPROVED | The developer account is not approved or has been suspended. |
| 413 | SOURCE_TOO_LARGE | The JavaScript source exceeds the 1 MB limit. |
| 429 | RATE_LIMITED | The API key exceeded 30 requests per minute. |
Tooling
npm package and CLI
Install the official client in Node.js projects or use the CLI in build scripts. Both require an approved API key and call the same API endpoint.
npm install @eula-org/js-obfuscator export EULA_ORG_API_KEY=eula_live_... js-obfuscator obfuscate input.js -o output.js --level hard
Node.js
import { obfuscate } from '@eula-org/js-obfuscator'
const protectedCode = await obfuscate({
source: 'console.log(1)',
level: 'medium',
})