Documentation
/

Référence de l'API

Référence de l'API

Utilisez le paquet public javascript-obfuscator pour les builds en CLI et Node.js. Il gère le streaming et les envois volumineux. Les clients REST directs doivent implémenter le protocole ci-dessous.

Regarder

Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets

Regarder sur YouTube

Créez une clé API dans Paramètres → Clés API. Un accès Pro, Team ou Business est requis. Conservez la clé sur votre serveur ou dans le coffre à secrets de votre CI, jamais dans du code exécuté par le navigateur. Le paquet javascript-obfuscator reçoit la clé via apiToken (--pro-api-token en CLI) ; une requête REST directe l'envoie dans l'en-tête Authorization: Bearer. Avec un forfait Team ou Business, le propriétaire de l'équipe peut cocher Clé de service de l'équipe dans la boîte de dialogue Créer une clé API ; cette clé appartient à l'équipe et non à une personne, et continue donc de fonctionner quand des membres partent.

Clés API · Utiliser le paquet NPM

Requête

POST https://obfuscator.io/api/v1/obfuscate

Envoyez du JSON contenant code et options. Activez au moins une fonctionnalité Pro : vmObfuscation: true ou parseHtml: true. Épinglez le paramètre de requête version pour obtenir des builds reproductibles ; en son absence, la dernière version est utilisée. Il accepte une version exacte comme 8.0.0, ou une plage : ^8.0.0 suit les nouvelles versions mineures et correctives de 8.x, ~8.0.0 suit les versions correctives de 8.0.x, et une plage se résout vers la version la plus élevée qui correspond. Les plages nécessitent un forfait Team ou Business.

options énumère les options elles-mêmes ; un nom de préréglage dans optionsPreset n'est pas appliqué. Pour faire un build avec un préréglage, intégré ou personnalisé, récupérez ses options depuis le point de terminaison des préréglages dans une requête séparée et envoyez-les comme options.

Si le propriétaire de l'équipe impose une version ou un préréglage, celui-ci remplace le version ou les options de la requête pour les membres de l'équipe et les clés de service de l'équipe. Voir Imposer une version à votre équipe et Préréglages partagés.

En-têteValeur
Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

Code

Réponse

Lisez le corps comme du JSON délimité par des sauts de ligne (NDJSON). Une lecture réseau peut couper une ligne JSON ou un caractère UTF-8. Une progression ne signifie pas la fin du traitement : exigez un message result ou chunk_end, et conservez les warnings.

Une petite sortie arrive dans un unique message result. Une sortie volumineuse arrive sous forme de messages chunk suivis de chunk_end. Les deux messages terminaux portent version, la version concrète de l'obfuscateur qui a produit la sortie (utile lorsque vous avez demandé une plage ou que l'équipe impose une version). warnings liste les avertissements d'obfuscation non bloquants sous la forme { type, message, functionName? } et est omis lorsqu'il n'y en a aucun ; traitez donc un champ absent comme une liste vide. Aucune source map n'est produite pour les builds VM ni pour une entrée HTML. Un build parseHtml de JavaScript simple avec sourceMap: true en renvoie une dans le champ sourceMap du message terminal, ou sous forme de fragments sourceMap lorsqu'elle est volumineuse.

Les échecs applicatifs arrivent sous forme de messages error dans le flux, généralement avec un HTTP 200. Vérifiez à la fois le statut HTTP et les erreurs transmises dans le flux. L'infrastructure et les points de terminaison d'envoi peuvent renvoyer des réponses HTTP autres que 2xx.

Code

Code

JSON

Node.js (.mjs)

JavaScript

Code

Préréglages

GET https://obfuscator.io/api/v1/presets/{name}

Renvoie les options d'un préréglage, prêtes à être envoyées comme options de la requête d'obfuscation. Envoyez le même en-tête Authorization: Bearer. Le nom est comparé sans tenir compte de la casse, et la réponse est un unique objet JSON, pas un flux. Les exemples ci-dessous sont abrégés.

  • Préréglages intégrés : {name} est un préréglage intégré tel que vm-default (voir Choisir un préréglage). Le paramètre de requête version sélectionne la version de l'obfuscateur dont le préréglage est renvoyé ; il accepte les mêmes valeurs que le point de terminaison d'obfuscation et vaut par défaut la dernière version. description et updatedAt valent null.
  • Préréglages personnalisés : {name} est l'alias API défini dans la boîte de dialogue d'enregistrement d'un préréglage personnalisé dans le tableau de bord, et options contient la configuration enregistrée (toutes les options, pas seulement celles modifiées par rapport à un préréglage). La visibilité suit celle du tableau de bord : une clé API donne accès aux préréglages de son utilisateur ainsi qu'à ceux partagés par le propriétaire de son équipe, et une clé de service de l'équipe donne accès aux préréglages du propriétaire.

GET https://obfuscator.io/api/v1/presets/vm-default

JSON

GET https://obfuscator.io/api/v1/presets/production

JSON

StatutSignification
200Le préréglage.
400Le nom est mal formé (1 à 20 caractères, lettres a-z, chiffres, tirets ou tirets bas, en commençant par une lettre ou un chiffre), ou la version n'est pas prise en charge.
401Clé API manquante, invalide ou expirée.
403Compte suspendu, aucun abonnement actif, ou forfait sans accès à l'API.
404Aucun préréglage intégré portant ce nom n'existe dans la version demandée, et aucun préréglage personnalisé portant cet alias n'est visible pour cette clé.
429Limite de débit atteinte ; la requête partage les quotas par utilisateur et par IP décrits dans Limites et échecs.
500La recherche du préréglage a échoué sur le serveur. Réessayez plus tard.

Les erreurs ont la forme {"error": "..."}. Des exemples d'utilisation pour le paquet javascript-obfuscator et sa CLI figurent dans Utiliser le paquet NPM.

Limites et échecs

Les limites du forfait s'appliquent à la taille du source et à l'utilisation. Maintenez l'intégralité du corps JSON sérialisé, échappements et options compris, sous 4.4 Mo. Les sources plus volumineuses nécessitent des envois temporaires, disponibles avec les forfaits Team et Business uniquement via le paquet javascript-obfuscator. Consultez les limites de votre forfait actuel dans le tableau de bord.

L'API autorise 30 requêtes par minute et par utilisateur, réparties entre toutes ses clés, et 100 requêtes par minute et par IP. Les requêtes de préréglages comptent dans les mêmes quotas que les requêtes d'obfuscation.

Une limitation de débit, un dépassement de quota ou un flux interrompu doivent arrêter le build. Relancez de manière réfléchie : une requête répétée peut consommer davantage d'utilisation. Ne publiez pas de sortie partielle.

Tests et CI