API Reference

Pro

Integrate wYnFuscate into your CI/CD pipeline, build tools, or custom applications with our REST API. Available for Pro and Enterprise plans.

Quick Start

1

Generate an API Key

Go to Dashboard → Settings → API Keys and create a new key.

2

Submit a file for obfuscation

Loading...
3

Poll for completion

Loading...
4

Download the obfuscated file

Loading...

Authentication

All API requests require authentication using a Bearer token. Include your API key in the Authorization header:

Loading...

Keep your API key secure

Never expose your API key in client-side code, public repositories, or logs. API keys have full access to your account's obfuscation capabilities.

API Key Format

API keys follow the format wynf_ followed by 32 alphanumeric characters. Example: wynf_WA26Jeusd6JQWowkJYbo1peqyKJFe5uE

Key Limits

  • Each account can have 1 active API key at a time
  • Revoke your existing key before creating a new one
  • Keys are shown only once at creation - store them securely
  • Keys are automatically revoked if you downgrade from Pro/Enterprise

Base URL

Loading...

All endpoints are relative to this base URL. Use HTTPS for all requests.

Endpoints

POST/obfuscate

Submit a Lua file for obfuscation. Returns a job ID that you can use to check status and download the result.

Request

ParameterTypeRequiredDescription
fileFileYesThe .lua file to obfuscate (max 5MB Pro, 10MB Enterprise)
targetPlatformStringNoTarget Lua platform (default: ROBLOX). See available platforms below.
optionsJSONNoJSON array of obfuscation flags (see available options below)

Target Platforms

Specify the Lua runtime your script will run on. This optimizes the obfuscated output for compatibility.

ValueDescription
ROBLOXRoblox (Luau) - Default. Optimized for Roblox game scripts.
LUAUStandalone Luau CLI runtime.
LUA51Standard Lua 5.1.
LUA52Standard Lua 5.2.
LUA53Standard Lua 5.3.
LUA54Standard Lua 5.4.
LUAJITLuaJIT 2.x. High-performance JIT compiler.

Available Options

OptionDescription
--enhanced-securityAdditional protection layers for maximum security. Comes with a performance trade-off.

Example Request

Loading...

Example Request (with Target Platform)

Loading...

Example Request (with Enhanced Security)

Loading...

Example Request (with All Options)

Loading...

Response

Loading...
GET/jobs/{id}

Get the current status and details of an obfuscation job.

Job Statuses

pending

Queued for processing

processing

Currently obfuscating

completed

Ready to download

failed

Error occurred

Example Request

Loading...

Response (Completed)

Loading...

Response (Failed)

Loading...
GET/jobs/{id}/download

Download the obfuscated file. Only available when job status is completed.

Example Request

Loading...

Response Headers

Loading...

Note: Files are retained for 14 days after creation. After expiration, the download endpoint returns a 410 Gone error.

Error Codes

HTTPCodeDescription
400BAD_REQUESTInvalid request parameters
400INVALID_FILEFile validation failed (wrong type, too large, etc.)
400NOT_READYJob not completed yet (for download endpoint)
401UNAUTHORIZEDMissing or invalid API key
401INVALID_KEYAPI key format is invalid or key not found
401KEY_REVOKEDAPI key has been revoked
401KEY_EXPIREDAPI key has expired
403FORBIDDENAPI key lacks required scope
403PLAN_DOWNGRADEDAccount no longer has API access (downgraded plan)
403QUOTA_EXCEEDEDDaily quota or concurrent job limit exceeded
404NOT_FOUNDJob not found or doesn't belong to your account
410EXPIREDJob files have expired (14-day retention)
429RATE_LIMIT_EXCEEDEDToo many requests, slow down
500INTERNAL_ERRORServer error, please retry
503SERVICE_UNAVAILABLEService is under maintenance

Error Response Format

Loading...

Rate Limits

API requests are subject to rate limits to ensure fair usage. Limits are applied per API key.

PlanPer HourPer DayConcurrent Jobs
Pro10 requests50 requests3 jobs
Enterprise300 requestsUnlimited10 jobs

When rate limited, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait before retrying.

Code Examples

Python

Loading...

Node.js

Loading...

Bash

Loading...

Best Practices

  • Use exponential backoff for polling

    Start with 1 second, then 2, 4, 8... to reduce API calls for longer jobs.

  • Store API keys in environment variables

    Never hardcode keys in source code or commit them to repositories.

  • Handle rate limits gracefully

    Check for 429 responses and respect the Retry-After header.

  • Validate files before uploading

    Check file extension and size client-side to avoid wasting API calls.

  • Download results promptly

    Files expire after 14 days. Download and store results in your own storage.