API REFERENCE · PRISM PRO

Referencia de la API local: gestione perfiles del navegador desde sus scripts.

La API de automatización local de Prism Pro solo escucha en 127.0.0.1, en su propio equipo, y usa un token de acceso que se genera cada vez que se inicia. Cualquier lenguaje capaz de enviar solicitudes HTTP puede usarla para crear perfiles, de uno en uno o por lotes, y después consultarlos, iniciarlos y cerrarlos.

Actualizado · Según el código fuente del cliente Prism 0.3.22

Resumen

La API local es una función de Prism Pro pensada para gestionar perfiles por lotes con sus propios scripts: crearlos a partir de sus datos, iniciarlos en orden, comprobar su estado y cerrarlos cuando termine. Solo gestiona los perfiles en sí: no lee cookies, contraseñas, credenciales de proxy ni el contenido de las páginas, y tampoco ofrece un endpoint de depuración para Puppeteer / Playwright. Para que una IA lea páginas, haga clic y rellene formularios, use MCP.

Datos básicos de la API local
AspectoDescripción
Direcciónhttp://127.0.0.1:<port>; el puerto se asigna al azar cada vez que se inicia la API, y solo se aceptan solicitudes de este equipo
AutenticaciónEncabezado Authorization: Bearer <token>; el token se muestra una vez al iniciar la API y deja de ser válido al detenerla
Formato de datosJSON (UTF-8); las respuestas correctas devuelven el resultado en el campo result
Cuerpo de la solicitudSolo los endpoints de creación aceptan un cuerpo JSON, de 96 KiB como máximo
Límite de solicitudesComo máximo 120 solicitudes cada 60 segundos (límite compartido con MCP)
Tiempo de esperaCada solicitud espera como máximo 60 segundos
DisponibilidadPrism Pro; igual en macOS y en Windows; los endpoints de creación requieren la versión 0.3.22 o posterior

Inicio rápido

  1. Inicie la API local

    En Prism, abra “API de automatización” en la barra lateral izquierda y haga clic en “Iniciar API local”. Esta función requiere Prism Pro.

  2. Copie la dirección y el token

    La ventana muestra “Dirección de la API” y “Token de acceso de esta sesión”. El token solo se muestra una vez, cuando la API se inicia correctamente, así que cópielo enseguida; si más adelante necesita un token nuevo, detenga la API y vuelva a iniciarla.

  3. Envíe su primera solicitud

    En la línea de comandos, defina dos variables, compruebe el estado del servicio y liste los perfiles. Si la respuesta incluye "state": "running", la dirección y el token funcionan.

PRISM_API='http://127.0.0.1:43123'   # the API address shown in Prism
PRISM_TOKEN='<token>'                # the token shown in Prism

curl -H "Authorization: Bearer $PRISM_TOKEN" "$PRISM_API/v1/status"
curl -H "Authorization: Bearer $PRISM_TOKEN" "$PRISM_API/v1/profiles"

En Windows PowerShell, curl es un alias de otro comando: escriba curl.exe en su lugar o use Invoke-RestMethod, integrado en PowerShell:

$api = 'http://127.0.0.1:43123'
$headers = @{ Authorization = 'Bearer <token>' }
(Invoke-RestMethod -Uri "$api/v1/profiles" -Headers $headers).result | Format-Table serialNumber, name, status

Reglas de solicitud

La API solo acepta solicitudes enviadas por scripts o programas de este equipo. Si una solicitud no cumple alguna de estas reglas, no se ejecuta y devuelve el error indicado en la tabla:

Reglas de solicitud y errores correspondientes
ReglaHTTPError
Use 127.0.0.1, no localhost: el encabezado Host debe coincidir exactamente con la dirección de la API403invalid_host
Incluya Authorization: Bearer <token> en cada solicitud401unauthorized
Sin encabezado Origin de navegador; por eso, el JavaScript de las páginas web y de las extensiones del navegador no puede llamar a la API403browser_origin_not_allowed
Sin parámetros de consulta en la URL (?…)400query_not_allowed
Use solo las rutas y los métodos indicados más abajo404not_found
Solo los endpoints de creación aceptan cuerpo; las demás solicitudes, como las de inicio o cierre, no pueden enviar ni siquiera {}400body_not_allowed
Los endpoints de creación usan Content-Type: application/json y el cuerpo es un objeto JSON400json_body_required / invalid_json_body
El cuerpo no supera los 96 KiB413request_too_large
Como máximo 120 solicitudes cada 60 segundos; también cuentan las solicitudes fallidas y las de MCP429rate_limited

Prism procesa las solicitudes de la API local y de MCP de una en una, en el orden en que llegan. Iniciar un perfil implica probar el proxy y abrir el navegador, lo que suele tardar unos segundos; mientras tanto, las solicitudes siguientes esperan en cola. Espere a que cada solicitud responda antes de enviar la siguiente.

Endpoints

Endpoints de la API local
MétodoRutaFunción
GET/v1/statusComprueba si el servicio está disponible
GET/v1/profilesLista todos los perfiles (excepto los de la papelera)
GET/v1/profiles/{id}/statusConsulta un perfil
POST/v1/profiles/{id}/startInicia un perfil
POST/v1/profiles/{id}/closeCierra un perfil y conserva sus datos
POST/v1/profilesCrea un perfil (desde la versión 0.3.22)
POST/v1/profiles/batchCrea de 1 a 50 perfiles a la vez (desde la versión 0.3.22)

{id} es el ID del perfil, que se obtiene del resultado de GET /v1/profiles. Todas las respuestas correctas tienen el estado HTTP 200 y, salvo la de GET /v1/status, devuelven el resultado en el campo result. La API no tiene endpoints para modificar ni eliminar perfiles.

Objeto de perfil

La lista de perfiles, el estado de un perfil, el inicio y el cierre devuelven el mismo objeto de perfil:

Campos del objeto de perfil
CampoTipoDescripción
idcadenaID del perfil, que usan los demás endpoints
serialNumberenteroNúmero del perfil que se muestra en la aplicación; no se reutiliza aunque se elimine el perfil
namecadenaNombre del perfil
groupcadenaGrupo; cadena vacía si el perfil no tiene grupo
tagsmatriz de cadenasEtiquetas
statuscadenaclosed cerrado, starting iniciando, running en ejecución, stopping cerrando, orphaned proceso huérfano, error error
lastOpenedAtcadenaFecha y hora de la última apertura (ISO 8601, UTC); no aparece en los perfiles que nunca se han abierto
{
  "result": {
    "id": "8f0c2b9e-4d6a-4f51-9a7e-2f1c3d5b6a70",
    "serialNumber": 12,
    "name": "Shop A",
    "group": "Project A",
    "tags": ["automation"],
    "status": "running",
    "lastOpenedAt": "2026-10-02T08:30:00.000Z"
  }
}

Las respuestas nunca incluyen direcciones ni credenciales de proxy, parámetros de huella digital, cookies, contraseñas, datos de sitios web ni datos de extensiones.

Consultar, iniciar y cerrar

GET /v1/status

Devuelve el estado del servicio, para confirmar que la dirección y el token funcionan. Es la única respuesta que no va dentro de result:

{
  "state": "running",
  "transport": "loopback",
  "protocolVersion": 1
}

GET /v1/profiles

Devuelve una matriz de objetos de perfil, empezando por los modificados más recientemente. Los perfiles de la papelera no se incluyen.

GET /v1/profiles/{id}/status

Devuelve el estado actual de un perfil. Si el perfil no existe o está en la papelera, devuelve 404 PROFILE_NOT_FOUND.

POST /v1/profiles/{id}/start

  • Equivale a hacer clic en “Abrir” en la aplicación: Prism comprueba el núcleo y la licencia de los núcleos Pro, prueba el proxy, detecta si ha cambiado la IP de salida y, por último, abre la ventana del navegador. Si todo va bien, devuelve el objeto de perfil con el estado running.
  • Si el perfil ya está en ejecución, devuelve su estado actual sin abrirlo otra vez.
  • Prism solo procesa la siguiente solicitud cuando la de inicio ya ha respondido. Para iniciar varios perfiles, llame al endpoint para cada uno de ellos, de uno en uno; cuántos pueden ejecutarse a la vez depende de la memoria y la CPU del equipo.
  • Si falta el núcleo correspondiente, la prueba del proxy no se supera, la IP de salida del proxy ha cambiado (con la política block) o queda un proceso huérfano, el inicio falla con 502 y error.message explica el motivo.
  • Los casos en los que la aplicación le pediría confirmación para continuar fallan directamente a través de la API; por ejemplo, cuando los datos de geolocalización de la salida del proxy se contradicen. Ante este tipo de errores, abra el perfil en la aplicación Prism o cambie su identidad de red a manual.
  • Prism registra los perfiles para los que se ha llamado al endpoint de inicio (incluidos los que ya estaban en ejecución) y los cierra todos al hacer clic en “Parada de emergencia” en la ventana “API de automatización”. Al hacer clic en “Detener API”, o en los botones de detención y de parada de emergencia de la ventana de MCP, solo se detiene la API: estos perfiles siguen abiertos.

POST /v1/profiles/{id}/close

Cierra la ventana del navegador, conserva los datos del perfil y devuelve el objeto de perfil con el estado closed; si el perfil no está en ejecución, devuelve closed directamente. Si el navegador no se ha cerrado al cabo de 8 segundos y sigue ocupando el directorio de datos, devuelve el estado orphaned; llamar otra vez al endpoint de cierre finaliza el proceso huérfano.

PROFILE_ID='8f0c2b9e-4d6a-4f51-9a7e-2f1c3d5b6a70'   # an id from GET /v1/profiles
curl -X POST -H "Authorization: Bearer $PRISM_TOKEN" "$PRISM_API/v1/profiles/$PROFILE_ID/start"
curl -X POST -H "Authorization: Bearer $PRISM_TOKEN" "$PRISM_API/v1/profiles/$PROFILE_ID/close"

Crear perfiles

Los endpoints de creación guardan los perfiles nuevos cerrados, sin abrir el navegador. Todos los campos son opcionales: los que se omiten toman los mismos valores predeterminados que “Nuevo perfil” en la aplicación, y cada perfil recibe una semilla de huella digital nueva. Los campos desconocidos se rechazan.

Crear un perfil

curl -X POST "$PRISM_API/v1/profiles" \
  -H "Authorization: Bearer $PRISM_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: shop-b-001" \
  -d '{
    "name": "Shop B",
    "group": "Project A",
    "tags": ["automation"],
    "startUrls": ["https://example.com/"],
    "proxy": { "protocol": "socks5", "host": "203.0.113.10", "port": 1080, "username": "user", "password": "pass" }
  }'

Si se crea correctamente, se devuelve el perfil nuevo:

{
  "result": {
    "id": "3b1f7a52-9c4e-4d2b-8f60-1a2b3c4d5e6f",
    "serialNumber": 13,
    "name": "Shop B",
    "group": "Project A",
    "tags": ["automation"],
    "status": "closed"
  }
}

Crear por lotes

El cuerpo de POST /v1/profiles/batch es una matriz profiles de 1 a 50 elementos; cada uno se escribe igual que en la creación individual, pero requestKey va en el nivel superior o en el encabezado. Prism valida primero todos los perfiles: si alguno no es válido, no se crea ninguno, y el mensaje de error indica qué perfil y qué campo fallan (profiles[1] es el segundo perfil; se empieza a contar desde 0). Los resultados se devuelven en el orden de entrada:

{
  "requestKey": "shops-batch-001",
  "profiles": [
    { "name": "Shop C", "group": "Project A" },
    { "name": "Shop D", "group": "Project A", "fingerprint": { "platform": "windows" } }
  ]
}
{
  "result": {
    "profiles": [
      { "id": "…", "serialNumber": 14, "name": "Shop C", "group": "Project A", "tags": [], "status": "closed" },
      { "id": "…", "serialNumber": 15, "name": "Shop D", "group": "Project A", "tags": [], "status": "closed" }
    ],
    "count": 2
  }
}

Campos del perfil

Campos para crear un perfil
CampoDescripciónSi se omite
nameNombre, de 1 a 60 caracteres“API” seguido de un número, por ejemplo API 8: el número actual de perfiles más 1, que va aumentando dentro de un lote; puede coincidir con un nombre existente
groupGrupo, hasta 40 caracteresSin grupo
tagsMatriz de etiquetas: hasta 20, de 30 caracteres como máximo cada unaNinguna
noteNotas, hasta 500 caracteresNinguna
colorColor del perfil, #RRGGBBSe alternan los colores de la paleta
startUrlsMatriz de páginas de inicio, hasta 50; solo http / https, sin usuario ni contraseña; las direcciones sin protocolo usan httpsSitio web de Prism
proxyProxy; consulte la tabla siguienteConexión directa
fingerprintOpciones de huella digital; consulte la tabla siguienteIgual que un perfil nuevo creado en la aplicación
extensionIdsID internos de Prism de las extensiones instaladas, hasta 50. En la ventana “Extensiones”, el nombre de la carpeta en la ruta de la extensión …/<ID>/extension es este ID; no es el ID de la extensión en Chrome Web StoreSin extensiones
kernelVersionFija una versión concreta del núcleo, con cuatro números, por ejemplo 144.0.7559.132; esa versión debe estar instalada al iniciar el perfilSigue el núcleo predeterminado
requestKeyClave de solicitud para reintentos seguros; consulte “Reintentos sin duplicados”Ninguna

Campos del proxy

Campos del proxy (proxy)
CampoDescripción
protocolObligatorio: direct, http, https o socks5
hostNombre de host o IP, sin protocolo, puerto ni credenciales; obligatorio salvo con direct
portEntero de 1 a 65535; obligatorio salvo con direct
username、passwordOpcional. La contraseña se guarda cifrada en este equipo y ningún endpoint la devuelve

Campos de huella digital

Campos de huella digital (fingerprint)
CampoDescripciónSi se omite
platformmacos o windowsSegún la plantilla de hardware; sin plantilla, el sistema de este equipo
hardwareProfileIdPlantilla de hardware; consulte la tabla siguiente. La versión del sistema, el número de núcleos de CPU y el tamaño de pantalla dependen de la plantillaLa plantilla “independiente por semilla” del sistema correspondiente
seedSemilla de huella digital, un entero de 0 a 4294967295; la misma semilla, con los demás ajustes de huella digital iguales, genera la misma huella digitalAleatoria
brandChrome o EdgeChrome
brandVersionVersión del navegador. Normalmente se deja vacía para usar la versión del núcleo; si se indica, su versión principal debe coincidir con la del núcleo con el que se inicia el perfil; de lo contrario, el perfil no se iniciaráLa versión del núcleo
languageIdioma de la interfaz, por ejemplo en-USEl idioma del sistema de este equipo
acceptLanguagesEncabezado Accept-LanguageSe genera a partir del idioma
timezoneZona horaria IANA, por ejemplo America/New_YorkLa zona horaria de este equipo
networkIdentityModeproxy: prueba la salida del proxy antes de iniciar y ajusta a esa salida la zona horaria y la geolocalización, y también el idioma si se reconoce el país de salida; manual: usa siempre los valores indicadosproxy
proxyExitPolicySi la IP de salida del proxy ha cambiado desde la última prueba: block hace que este inicio falle, y volver a iniciar cuenta como confirmación, así que los scripts no deben reintentar automáticamente tras este error; warn solo avisablock
webrtcPolicyproxy_only protección contra fugas; public_only solo interfaz pública; default valor predeterminado del sistemaproxy_only

Plantillas de hardware

ID de las plantillas de hardware
IDSistemaDescripción
macos-seeded-applemacOSGPU Apple independiente por semilla, recomendada para varios perfiles; predeterminada en macOS
macos-hostmacOSHardware de este equipo; solo se puede usar en un Mac
macos-m1macOSApple M1 · 8GB
macos-m3-promacOSApple M3 Pro · 18GB
macos-m4-promacOSApple M4 Pro · 24GB
windows-seeded-nvidiaWindowsGPU NVIDIA independiente por semilla, recomendada para varios perfiles; predeterminada en Windows
windows-hostWindowsHardware de este equipo; solo se puede usar en un equipo con Windows
windows-10-rtx3060WindowsWindows 10 · RTX 3060 · 16GB
windows-11-rtx4060WindowsWindows 11 · RTX 4060 · 16GB
windows-11-rtx4070WindowsWindows 11 · RTX 4070 · 32GB

Si la plantilla no coincide con platform, la solicitud se rechaza. La posición y el tamaño de la ventana, las cookies, los datos de extensiones y otros ajustes similares no se pueden definir mediante la API; puede cambiarlos en la aplicación Prism después de crear el perfil.

Reintentos sin duplicados

Si se corta la red o una solicitud agota el tiempo de espera, puede que no sepa si el perfil llegó a crearse. Indique una clave de solicitud en cada creación y un reintento nunca creará duplicados:

  • Envíe una clave de 8 a 128 caracteres en el encabezado Idempotency-Key o en el campo requestKey del cuerpo; puede contener letras ASCII, dígitos y . _ : -. Si la envía en ambos, deben coincidir.
  • Si reintenta con la misma clave y el mismo contenido en un plazo de 24 horas, se devuelven los perfiles creados la primera vez (HTTP 200), incluso después de reiniciar Prism.
  • La misma clave con un contenido distinto devuelve 409 IDEMPOTENCY_CONFLICT. Si se ha eliminado algún perfil creado la primera vez (incluso si solo se ha movido a la papelera), se devuelve 409 IDEMPOTENCY_RESULT_GONE en lugar de volver a crearlo sin avisar; para crearlo de nuevo, use otra clave.
  • Pasadas 24 horas, la misma clave cuenta como una solicitud nueva.
  • Se conservan como máximo 1000 solicitudes con clave durante 24 horas, un límite compartido con la creación desde MCP (cada creación desde MCP cuenta como una); al llegar al límite, se devuelve 429 IDEMPOTENCY_CAPACITY hasta que caduquen los registros antiguos.
  • Las claves y el contenido de las solicitudes solo se guardan en este equipo como resúmenes criptográficos, nunca en texto plano, de modo que con ellos no se almacena ninguna contraseña de proxy.

Genere las claves a partir de sus propios datos, como el número de fila de una hoja de cálculo o un número de pedido: shop-b-001.

Gestión de errores

Cuando una solicitud se rechaza en la entrada (consulte “Reglas de solicitud”), error es una cadena, por ejemplo {"error":"unauthorized"}. Cuando Prism falla al procesar una solicitud, error es un objeto:

{
  "error": {
    "code": "INVALID_PROFILE_INPUT",
    "message": "Invalid profile creation request; see details",
    "retryable": false,
    "details": [
      { "path": "profiles[1].proxy.port", "message": "Too big: expected number to be <=65535" }
    ]
  }
}

Los programas deben basarse en el estado HTTP y en code; message es una explicación para personas, en parte en chino, y su redacción puede cambiar entre versiones. Cuando retryable es true, la misma solicitud se puede reintentar más tarde sin cambios. details solo aparece en errores de los campos de creación, con un máximo de 20 entradas, y nunca repite los valores enviados.

Estados HTTP y códigos de error
HTTPErrorSignificadoQué hacer
400INVALID_PROFILE_INPUTCampos de creación no válidos; details indica cada campo y el motivoCorrija los campos indicados en details y vuelva a enviar la solicitud
400query_not_allowed、body_not_allowed、json_body_required、invalid_json_bodyLa solicitud no cumple las reglasCorríjala según “Reglas de solicitud”
401unauthorizedToken incorrecto o caducadoReinicie la API en Prism y use el token nuevo
403invalid_host、browser_origin_not_allowedNo se acepta la dirección o el origen de la solicitudUse 127.0.0.1 y llame a la API desde un script, no desde una página web
403PRO_REQUIREDLa licencia Pro ya no es válida, o un núcleo fijado requiere ProRenueve o vuelva a activar Pro
404not_foundLa ruta o el método no existeRevise “Endpoints”
404PROFILE_NOT_FOUNDEl perfil no existe o está en la papeleraVuelva a obtener la lista de perfiles
409IDEMPOTENCY_CONFLICT、IDEMPOTENCY_RESULT_GONEConflicto de clave de solicitud, o se ha eliminado un perfil creado con ellaUse otra clave de solicitud
413request_too_largeEl cuerpo supera los 96 KiBDivídalo en varios lotes
429rate_limited、IDEMPOTENCY_CAPACITYDemasiadas solicitudes, o se han alcanzado 1000 claves de solicitud en 24 horasVuelva a intentarlo más tarde
502MCP_REQUEST_FAILED y otrosOtros fallos de ejecución; por ejemplo, falta el núcleo, la prueba del proxy no se superó o hay un proceso huérfanoActúe según message
504BROKER_TIMEOUTPrism no respondió en 60 segundos; es posible que la operación siga en cursoConsulte primero el estado; reintente las solicitudes de creación con la misma clave

MCP_REQUEST_FAILED es un nombre de error genérico que Prism usa internamente y que también usa la API local.

Ejemplos de código

Sustituya la dirección y el token de los ejemplos por los valores que muestra Prism. Los ejemplos crean perfiles e inician y cierran un perfil recién creado.

Python

Requiere requests (pip install requests):

import requests

API = "http://127.0.0.1:43123"   # the API address shown in Prism
TOKEN = "<token>"                # the token shown in Prism

session = requests.Session()
session.headers["Authorization"] = f"Bearer {TOKEN}"

def call(method, path, **kwargs):
    response = session.request(method, API + path, timeout=70, **kwargs)
    body = response.json()
    if not response.ok:
        raise RuntimeError(f"{response.status_code}: {body['error']}")
    return body.get("result", body)

created = call("POST", "/v1/profiles/batch",
               headers={"Idempotency-Key": "shops-batch-002"},
               json={"profiles": [{"name": "Shop C"}, {"name": "Shop D"}]})
for profile in created["profiles"]:
    print("created", profile["serialNumber"], profile["id"])

profiles = call("GET", "/v1/profiles")
for profile in profiles:
    print(profile["serialNumber"], profile["name"], profile["status"])

first = created["profiles"][0]["id"]
print(call("POST", f"/v1/profiles/{first}/start")["status"])   # running
print(call("POST", f"/v1/profiles/{first}/close")["status"])   # closed

Node.js

Node.js 18 y posteriores incluyen fetch, así que no hace falta instalar dependencias:

// prism.mjs — run with: node prism.mjs (Node.js 18 or later)
const API = 'http://127.0.0.1:43123' // the API address shown in Prism
const TOKEN = '<token>'              // the token shown in Prism

async function call(method, path, body, headers = {}) {
  const response = await fetch(API + path, {
    method,
    headers: { Authorization: `Bearer ${TOKEN}`, ...(body ? { 'Content-Type': 'application/json' } : {}), ...headers },
    body: body ? JSON.stringify(body) : undefined,
    signal: AbortSignal.timeout(70_000),
  })
  const data = await response.json()
  if (!response.ok) throw new Error(`${response.status}: ${JSON.stringify(data.error)}`)
  return data.result ?? data
}

const profile = await call('POST', '/v1/profiles', {
  name: 'Shop E',
  fingerprint: { language: 'en-US', timezone: 'America/New_York', networkIdentityMode: 'manual' },
}, { 'Idempotency-Key': 'shop-e-001' })
console.log('created', profile.serialNumber, profile.id)

console.log((await call('POST', `/v1/profiles/${profile.id}/start`)).status) // running
console.log((await call('POST', `/v1/profiles/${profile.id}/close`)).status) // closed

API local y MCP

La API local está pensada para sus propios scripts; los clientes de IA deben conectarse a Prism mediante MCP. MCP usa su propio token y sus propios permisos: la IA solo ve los perfiles permitidos en “IA local · MCP” y no puede llamar a la API local. Ambos comparten el mismo servicio local y el mismo límite de 120 solicitudes cada 60 segundos; si detiene MCP o usa su parada de emergencia, la API local también se detiene.

Una IA también puede crear perfiles con las herramientas MCP prism_create_profile y prism_create_profiles, que admiten los mismos campos que se describen en esta página. Para ello, active “Permitir a la IA crear perfiles” en “IA local · MCP” (desactivado de forma predeterminada); que la IA pueda controlar los perfiles nuevos depende del modo de acceso a perfiles que haya configurado. MCP y la API local usan claves de solicitud independientes, pero comparten el límite de 1000 registros cada 24 horas.

Recomendaciones de seguridad

  • El token es la llave para gestionar los perfiles de este equipo: no lo incluya en repositorios de código, registros ni chats. Si sospecha que se ha filtrado, detenga la API y vuelva a iniciarla; el token anterior deja de funcionar de inmediato.
  • La API solo escucha en 127.0.0.1, así que otros dispositivos de la red local o de internet no pueden acceder a ella directamente. La comprobación de Host sirve sobre todo para rechazar las solicitudes de los navegadores y evitar usos accidentales, pero no sustituye a un control de acceso; no exponga la API mediante reenvío de puertos ni un proxy inverso.
  • Otros programas de este equipo también pueden llamar a la API si obtienen el token. Actívela solo en equipos de confianza y, cuando termine, haga clic en “Detener API”.
  • “Parada de emergencia”, en la ventana “API de automatización”, detiene la API y cierra los perfiles que la API haya iniciado en esta sesión y que sigan en ejecución.
  • Cada solicitud que ejecuta Prism se anota en el registro de auditoría local vault/logs/automation-audit.jsonl (en el directorio de datos de Prism), que guarda la hora, la acción, el resultado, el ID de la solicitud, los ID de perfil y el motivo del fallo, nunca el token, el contenido de la solicitud ni el contenido de las páginas. No se registran las solicitudes rechazadas por las reglas de solicitud ni las llamadas a GET /v1/status.

Preguntas frecuentes

¿Puedo llamar a la API desde una página web o una extensión del navegador?
No. Las solicitudes que envía un navegador llevan el encabezado Origin, y la API las rechaza. Llámela desde la línea de comandos, un script o un programa local.
¿Por qué localhost devuelve 403?
La API exige que el encabezado Host coincida exactamente con 127.0.0.1 y el puerto de la dirección de la API, así que localhost se rechaza. Use 127.0.0.1 como nombre de host en la dirección.
¿Qué hago si la ventana “API de automatización” indica que la API está en ejecución, pero no muestra el token?
Cuando MCP está habilitado, Prism inicia automáticamente el servicio local que comparten la API y MCP, y en ese caso la ventana solo muestra la dirección. El token solo se muestra una vez, cuando la API se inicia correctamente con “Iniciar API local”: haga clic en “Detener API” y después en “Iniciar API local” para obtener un token nuevo. Mientras el servicio está detenido, la conexión de MCP también se interrumpe.
¿Sigue funcionando el token anterior después de reiniciar Prism?
No. Cada vez que se inicia la API se generan un puerto y un token nuevos; al detener la API o salir de Prism, el token anterior deja de ser válido.
¿Se pueden modificar o eliminar perfiles con la API?
No. La API puede crear, consultar, iniciar y cerrar perfiles; para modificar su configuración o eliminarlos, use la aplicación Prism.
¿Puedo conectar Puppeteer, Playwright o Selenium?
No. La API no ofrece ningún puerto de depuración ni dirección de WebDriver. Para acciones dentro de las páginas, puede encargárselas a un cliente de IA mediante MCP.
¿Puedo iniciar muchos perfiles a la vez?
Sí, llamando al endpoint de inicio para cada perfil, de uno en uno. Prism procesa las solicitudes en orden y pasa a la siguiente cuando el perfil ha terminado de iniciarse; cuántos pueden ejecutarse a la vez depende de la memoria y la CPU del equipo.
¿Funciona también en Windows?
Sí. Prism Pro ofrece la misma API local en macOS y en Windows. En Windows PowerShell, use curl.exe o Invoke-RestMethod.