Developer portal

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.

01

Request access

02

Get approved

03

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

POST

/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

light

Fast minification with renamed identifiers.

  • Minification
  • Identifier transformation
  • Basic string transformations

Medium

medium

Balanced protection for most production code.

  • Strong identifier transforms
  • String arrays
  • String encoding (base64)
  • Object key transforms

Hard

hard

Aggressive transforms that resist tampering.

  • Control-flow flattening
  • RC4 string protection
  • Dead-code injection
  • Self-defending code

Extreme

extreme

Maximum 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.

HTTPCodeMeaning
400INVALID_REQUESTThe request body is missing or invalid.
400INVALID_PROTECTION_LEVELThe protection level is not supported.
401INVALID_API_KEYThe bearer key is missing, invalid, or revoked.
403API_ACCESS_NOT_APPROVEDThe developer account is not approved or has been suspended.
413SOURCE_TOO_LARGEThe JavaScript source exceeds the 1 MB limit.
429RATE_LIMITEDThe 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',
})
Get your API key