VVEILVMJAVASCRIPT OBFUSCATION
TarifsConditionsPolitique de remboursementPolitique de confidentialitéDocumentation API

VEILVM · API

Documentation API

Dernière mise à jour : 3 novembre 2026

Les utilisateurs Pro (et les administrateurs) peuvent appeler en HTTP les mêmes moteurs d’obfuscation JSVMP que l’espace de travail web. Les appels API partagent le quota mensuel d’exécutions avec l’application web.

1. Créer une clé API

Connectez-vous, ouvrez Compte et créez une clé dans Clés API. Les clés commencent par veil_live_ et ne sont affichées qu’une seule fois lors de leur création. Nous ne stockons qu’un hachage et ne pouvons pas récupérer une clé ; si vous la perdez, révoquez-la et créez-en une nouvelle. Chaque compte peut conserver jusqu’à 3 clés actives. Toutes les clés cessent immédiatement de fonctionner si l’offre repasse à Free. La page du compte indique la dernière utilisation de chaque clé.

2. Requête

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

  • En-tête Authorization: Bearer <votre clé>
  • En-tête Content-Type: application/json
  • Corps { "code": "<source JavaScript>", "mode": "performance" | "dynamic" }: performance correspond à la VM haute performance, dynamic à la VM dynamique
  • Chaque requête API accepte jusqu’à 2 Mo de code source.

3. Réponse

En cas de succès, l’API renvoie 200 :

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

Les en-têtes X-Quota-Limit et X-Quota-Remaining indiquent la limite du mois et les exécutions restantes.

4. Erreurs

Chaque erreur renvoie { "ok": false, "error": "<code>", "message": "<details>" }. Exemple de quota :

{ "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" }
HTTPerrorSignification
401INVALID_KEYClé absente, mal formée, révoquée ou inconnue
403PLAN_REQUIREDLe propriétaire de la clé n’est plus Pro (les clés cessent immédiatement de fonctionner après un passage à une offre inférieure)
400BAD_REQUESTJSON invalide, code vide ou mode différent de performance / dynamic
413PAYLOAD_TOO_LARGELe code source dépasse 2 Mo par requête
415UNSUPPORTED_MEDIA_TYPEContent-Type n’est pas application/json
422COMPILE_FAILEDLe code source n’a pas pu être compilé (l’exécution n’est pas décomptée)
429QUOTA_EXCEEDEDExécutions mensuelles épuisées ; la réponse inclut limit / remaining / resetAt
503ENGINE_UNAVAILABLE / TIMEOUTLe moteur démarre ou a dépassé le délai
503QUOTA_UNAVAILABLE / UNAVAILABLELe service de quota ou de clés est temporairement indisponible
Toute réponse 503 peut être réessayée et aucune n’est décomptée : attendez la durée indiquée par l’en-tête Retry-After (en secondes, également dans le champ JSON retryAfter), puis réessayez
500INTERNAL_ERRORErreur serveur inattendue (l’exécution n’est pas décomptée) ; réessayez plus tard

5. Exemple 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. Exemple 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. Conseils de sécurité

  • N’intégrez jamais une clé dans du code exécuté par le navigateur et ne la commitez jamais dans un dépôt ; conservez-la dans une variable d’environnement côté serveur.
  • Révoquez une clé depuis la page du compte dès que vous soupçonnez une fuite.
  • Les requêtes standard sont traitées en mémoire et votre code n’est jamais écrit dans les journaux. Les gros fichiers sont stockés temporairement dans un espace de stockage privé et supprimés automatiquement sous 24 heures.
Retour à VEILVM
TarifsConditionsPolitique de remboursementPolitique de confidentialitéDocumentation APIJSVMP vs obfuscateursQu’est-ce que JSVMP ?