VVEILVMJAVASCRIPT OBFUSCATION
料金利用規約返金ポリシープライバシーポリシーAPI ドキュメント

VEILVM · API

API ドキュメント

最終更新:2026 年 11 月 3 日

Pro ユーザー(および管理者)は、ウェブワークスペースと同じ JSVMP 難読化エンジンを HTTP 経由で呼び出せます。API 呼び出しはウェブアプリと月間実行クォータを共有します。

1. API キーを作成

ログインして「アカウント」を開き、「API キー」でキーを作成します。キーは veil_live_ で始まり、作成時に一度だけ表示されます。保存するのはハッシュのみのため、キーを復元することはできません。紛失した場合は失効させて新しいキーを作成してください。1 アカウントにつき有効なキーは最大 3 個までです。プランが Free に戻ると、すべてのキーは直ちに無効になります。アカウントページで各キーの最終使用日時を確認できます。

2. リクエスト

POST https://vm.ldvmp.com/api/v1/obfuscate

  • ヘッダー Authorization: Bearer <あなたのキー>
  • ヘッダー Content-Type: application/json
  • ボディ { "code": "<JavaScript ソース>", "mode": "performance" | "dynamic" }: performance は高性能 VM、dynamic は動的 VM
  • API リクエスト 1 回につき、最大 2 MB のソースコードを送信できます。

3. レスポンス

成功すると API は 200 を返します:

{
  "ok": true,
  "output": "/* obfuscated JavaScript */ ...",
  "inputBytes": 22,
  "outputBytes": 48213,
  "ms": 184,
  "engine": "performance",
  "engineVersion": "…"
}

X-Quota-Limit と X-Quota-Remaining ヘッダーで、今月の上限と残り回数がわかります。

4. エラー

すべてのエラーは { "ok": false, "error": "<code>", "message": "<details>" } を返します。クォータの例:

{ "ok": false, "error": "QUOTA_EXCEEDED", "message": "Monthly run limit reached for this plan.",
  "limit": 1000, "used": 1000, "remaining": 0, "resetAt": "2026-12-01T00:00:00.000Z" }
HTTPerror意味
401INVALID_KEYキーがない、形式が不正、失効済み、または存在しない
403PLAN_REQUIREDキーの所有者が Pro ではなくなった(ダウングレード後、キーは直ちに無効になります)
400BAD_REQUESTJSON が無効、code が空、または mode が performance / dynamic 以外
413PAYLOAD_TOO_LARGE1 回のリクエストのソースコードが 2 MB を超えている
415UNSUPPORTED_MEDIA_TYPEContent-Type が application/json ではない
422COMPILE_FAILEDソースをコンパイルできなかった(実行回数は消費されません)
429QUOTA_EXCEEDED今月の実行回数を使い切った。レスポンスに limit / remaining / resetAt が含まれます
503ENGINE_UNAVAILABLE / TIMEOUTエンジンが起動中、またはタイムアウトした
503QUOTA_UNAVAILABLE / UNAVAILABLEクォータまたはキーのサービスが一時的に利用できない
すべての 503 は再試行可能で、いずれも回数は消費されません。Retry-After ヘッダー(秒。JSON フィールド retryAfter にも含まれます)の時間だけ待ってから再試行してください
500INTERNAL_ERROR予期しないサーバーエラー(実行回数は消費されません)。しばらくしてから再試行してください

5. curl の例

curl -X POST https://vm.ldvmp.com/api/v1/obfuscate \
  -H "Authorization: Bearer $VEILVM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"console.log(\"hello\")","mode":"performance"}'

6. Node.js の例

// Node.js 18+ (built-in fetch). Store the key in an environment variable, never in source.
import { readFile, writeFile } from "node:fs/promises";

const code = await readFile("input.js", "utf8");
const response = await fetch("https://vm.ldvmp.com/api/v1/obfuscate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VEILVM_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ code, mode: "dynamic" })
});
const data = await response.json();
if (!data.ok) throw new Error(`${response.status} ${data.error}: ${data.message}`);
await writeFile("output.js", data.output);
console.log(`${data.engine}: ${data.inputBytes} → ${data.outputBytes} bytes in ${data.ms} ms`);

7. セキュリティのヒント

  • キーをブラウザのコードに埋め込んだり、リポジトリにコミットしたりしないでください。サーバー側の環境変数に保管してください。
  • 漏えいが疑われる場合は、すぐにアカウントページでキーを失効させてください。
  • 通常のリクエストはメモリ上で処理され、コードがログに書き込まれることはありません。大きなファイルはプライベートストレージに一時保存され、24 時間以内に自動的に削除されます。
VEILVM に戻る
料金利用規約返金ポリシープライバシーポリシーAPI ドキュメントJSVMP と難読化ツールの比較JSVMP とは