Referencia de la API
Usa el paquete público javascript-obfuscator para compilaciones con la CLI y Node.js. Gestiona el streaming y las subidas de gran tamaño. Los clientes REST directos deben implementar el protocolo que se describe a continuación.
Ver
Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets
Crea una clave de API en Configuración → Claves de API. Se requiere acceso Pro, Team o Business. Guarda la clave en tu servidor o en el almacén de secretos de tu CI, nunca en código del navegador. El paquete javascript-obfuscator recibe la clave como apiToken (--pro-api-token en la CLI); una solicitud REST directa la envía en la cabecera Authorization: Bearer. En un plan Team o Business, el propietario del equipo puede marcar Clave de servicio del equipo en el cuadro de diálogo Crear una clave de API; esa clave pertenece al equipo y no a una persona, así que sigue funcionando cuando los miembros se van.
Claves de API · Uso del paquete NPM
Solicitud
POST https://obfuscator.io/api/v1/obfuscate
Envía un JSON con code y options. Activa al menos una función Pro: vmObfuscation: true o parseHtml: true. Fija el parámetro de consulta version para obtener compilaciones reproducibles; si lo omites, se usa la última versión. Acepta una versión exacta como 8.0.0 o un rango: ^8.0.0 sigue las nuevas versiones menores y de parche de 8.x, ~8.0.0 sigue las versiones de parche de 8.0.x, y un rango se resuelve a la versión más alta que coincida. Los rangos requieren un plan Team o Business.
options enumera las propias opciones; un nombre de preajuste en optionsPreset no se aplica. Para compilar con un preajuste, integrado o personalizado, obtén sus opciones del endpoint de preajustes en una solicitud aparte y envíalas como options.
Si el propietario del equipo fuerza una versión o un preajuste, este prevalece sobre el version o las options de la solicitud para los miembros del equipo y las claves de servicio del equipo. Consulta Forzar una versión para tu equipo y Preajustes compartidos.
| Cabecera | Valor |
|---|---|
Content-Type | application/json |
Authorization | Bearer YOUR_API_KEY |
Respuesta
Lee el cuerpo como JSON delimitado por saltos de línea (NDJSON). Una lectura de red puede partir una línea JSON o un carácter UTF-8. El progreso no equivale a la finalización: exige un mensaje result o chunk_end y conserva warnings.
Una salida pequeña llega en un único mensaje result. Una salida grande llega como mensajes chunk seguidos de chunk_end. Ambos mensajes finales incluyen version, la versión concreta del ofuscador que produjo la salida (útil cuando solicitaste un rango o el equipo fuerza una versión). warnings enumera las advertencias de ofuscación no fatales como { type, message, functionName? } y se omite cuando no hay ninguna, así que trata un campo ausente como una lista vacía. No se generan source maps para las compilaciones VM ni para la entrada HTML. Una compilación parseHtml de JavaScript puro con sourceMap: true devuelve uno en el campo sourceMap del mensaje final, o como chunks sourceMap cuando es grande.
Los fallos de la aplicación llegan como mensajes error dentro del stream, normalmente con HTTP 200. Comprueba tanto el estado HTTP como los errores del stream. Los endpoints de infraestructura y de subida pueden devolver respuestas HTTP distintas de 2xx.
Node.js (.mjs)
Preajustes
GET https://obfuscator.io/api/v1/presets/{name}
Devuelve las opciones de un preajuste, listas para enviarse como options de la solicitud de ofuscación. Envía la misma cabecera Authorization: Bearer. El nombre se compara sin distinguir mayúsculas de minúsculas, y la respuesta es un único objeto JSON, no un stream. Los ejemplos de abajo están abreviados.
- Preajustes integrados:
{name}es un preajuste integrado comovm-default(consulta Elegir preajustes). El parámetro de consultaversionselecciona la versión del ofuscador cuyo preajuste se devuelve; acepta los mismos valores que el endpoint de ofuscación y, por defecto, usa la versión más reciente.descriptionyupdatedAtsonnull. - Preajustes personalizados:
{name}es el alias para la API definido en el diálogo de guardado de un preajuste personalizado en el panel, yoptionses la configuración guardada (todas las opciones, no solo las que cambiaron respecto a un preajuste). La visibilidad sigue la del panel: una clave de API resuelve los preajustes propios de su usuario y los compartidos por el propietario del equipo de ese usuario, y una clave de servicio del equipo resuelve los preajustes del propietario.
GET https://obfuscator.io/api/v1/presets/vm-default
GET https://obfuscator.io/api/v1/presets/production
| Estado | Significado |
|---|---|
| 200 | El preajuste. |
| 400 | El nombre no es válido (de 1 a 20 caracteres, letras a-z, dígitos, guiones o guiones bajos, y debe empezar por una letra o un dígito), o la version no es compatible. |
| 401 | Clave de API ausente, no válida o caducada. |
| 403 | Cuenta suspendida, sin suscripción activa o con un plan sin acceso a la API. |
| 404 | No existe ningún preajuste integrado con este nombre en la versión solicitada, y la clave no puede ver ningún preajuste personalizado con este alias. |
| 429 | Límite de frecuencia alcanzado; la solicitud comparte los cupos por usuario y por IP descritos en Límites y fallos. |
| 500 | La búsqueda del preajuste falló en el servidor. Vuelve a intentarlo más tarde. |
Los errores tienen la forma {"error": "..."}. Encontrarás ejemplos de uso para el paquete javascript-obfuscator y su CLI en Uso del paquete NPM.
Límites y fallos
Los límites del plan se aplican al tamaño del código fuente y al uso. Mantén el cuerpo JSON serializado completo, incluidos el escapado y las opciones, por debajo de 4.4 MB. El código fuente más grande necesita subidas temporales, disponibles en Team y Business solo a través del paquete javascript-obfuscator. Consulta los límites de tu plan actual en el panel.
La API admite 30 solicitudes por minuto por usuario, compartidas entre todas sus claves, y 100 solicitudes por minuto por IP. Las solicitudes de preajustes cuentan para los mismos cupos que las solicitudes de ofuscación.
Los límites de frecuencia, los fallos de cuota y los streams interrumpidos deben detener la compilación. Reintenta de forma deliberada: una solicitud repetida puede consumir uso adicional. No publiques una salida parcial.
