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.
| Aspecto | Descripción |
|---|---|
| Dirección | http://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ón | Encabezado Authorization: Bearer <token>; el token se muestra una vez al iniciar la API y deja de ser válido al detenerla |
| Formato de datos | JSON (UTF-8); las respuestas correctas devuelven el resultado en el campo result |
| Cuerpo de la solicitud | Solo los endpoints de creación aceptan un cuerpo JSON, de 96 KiB como máximo |
| Límite de solicitudes | Como máximo 120 solicitudes cada 60 segundos (límite compartido con MCP) |
| Tiempo de espera | Cada solicitud espera como máximo 60 segundos |
| Disponibilidad | Prism Pro; igual en macOS y en Windows; los endpoints de creación requieren la versión 0.3.22 o posterior |
Inicio rápido
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.
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.
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, statusReglas 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:
| Regla | HTTP | Error |
|---|---|---|
Use 127.0.0.1, no localhost: el encabezado Host debe coincidir exactamente con la dirección de la API | 403 | invalid_host |
Incluya Authorization: Bearer <token> en cada solicitud | 401 | unauthorized |
| 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 API | 403 | browser_origin_not_allowed |
Sin parámetros de consulta en la URL (?…) | 400 | query_not_allowed |
| Use solo las rutas y los métodos indicados más abajo | 404 | not_found |
Solo los endpoints de creación aceptan cuerpo; las demás solicitudes, como las de inicio o cierre, no pueden enviar ni siquiera {} | 400 | body_not_allowed |
Los endpoints de creación usan Content-Type: application/json y el cuerpo es un objeto JSON | 400 | json_body_required / invalid_json_body |
| El cuerpo no supera los 96 KiB | 413 | request_too_large |
| Como máximo 120 solicitudes cada 60 segundos; también cuentan las solicitudes fallidas y las de MCP | 429 | rate_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
| Método | Ruta | Función |
|---|---|---|
| GET | /v1/status | Comprueba si el servicio está disponible |
| GET | /v1/profiles | Lista todos los perfiles (excepto los de la papelera) |
| GET | /v1/profiles/{id}/status | Consulta un perfil |
| POST | /v1/profiles/{id}/start | Inicia un perfil |
| POST | /v1/profiles/{id}/close | Cierra un perfil y conserva sus datos |
| POST | /v1/profiles | Crea un perfil (desde la versión 0.3.22) |
| POST | /v1/profiles/batch | Crea 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:
| Campo | Tipo | Descripción |
|---|---|---|
id | cadena | ID del perfil, que usan los demás endpoints |
serialNumber | entero | Número del perfil que se muestra en la aplicación; no se reutiliza aunque se elimine el perfil |
name | cadena | Nombre del perfil |
group | cadena | Grupo; cadena vacía si el perfil no tiene grupo |
tags | matriz de cadenas | Etiquetas |
status | cadena | closed cerrado, starting iniciando, running en ejecución, stopping cerrando, orphaned proceso huérfano, error error |
lastOpenedAt | cadena | Fecha 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 yerror.messageexplica 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
| Campo | Descripción | Si se omite |
|---|---|---|
name | Nombre, 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 |
group | Grupo, hasta 40 caracteres | Sin grupo |
tags | Matriz de etiquetas: hasta 20, de 30 caracteres como máximo cada una | Ninguna |
note | Notas, hasta 500 caracteres | Ninguna |
color | Color del perfil, #RRGGBB | Se alternan los colores de la paleta |
startUrls | Matriz de páginas de inicio, hasta 50; solo http / https, sin usuario ni contraseña; las direcciones sin protocolo usan https | Sitio web de Prism |
proxy | Proxy; consulte la tabla siguiente | Conexión directa |
fingerprint | Opciones de huella digital; consulte la tabla siguiente | Igual que un perfil nuevo creado en la aplicación |
extensionIds | ID 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 Store | Sin extensiones |
kernelVersion | Fija 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 perfil | Sigue el núcleo predeterminado |
requestKey | Clave de solicitud para reintentos seguros; consulte “Reintentos sin duplicados” | Ninguna |
Campos del proxy
| Campo | Descripción |
|---|---|
protocol | Obligatorio: direct, http, https o socks5 |
host | Nombre de host o IP, sin protocolo, puerto ni credenciales; obligatorio salvo con direct |
port | Entero de 1 a 65535; obligatorio salvo con direct |
username、password | Opcional. La contraseña se guarda cifrada en este equipo y ningún endpoint la devuelve |
Campos de huella digital
| Campo | Descripción | Si se omite |
|---|---|---|
platform | macos o windows | Según la plantilla de hardware; sin plantilla, el sistema de este equipo |
hardwareProfileId | Plantilla 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 plantilla | La plantilla “independiente por semilla” del sistema correspondiente |
seed | Semilla 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 digital | Aleatoria |
brand | Chrome o Edge | Chrome |
brandVersion | Versió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 |
language | Idioma de la interfaz, por ejemplo en-US | El idioma del sistema de este equipo |
acceptLanguages | Encabezado Accept-Language | Se genera a partir del idioma |
timezone | Zona horaria IANA, por ejemplo America/New_York | La zona horaria de este equipo |
networkIdentityMode | proxy: 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 indicados | proxy |
proxyExitPolicy | Si 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 avisa | block |
webrtcPolicy | proxy_only protección contra fugas; public_only solo interfaz pública; default valor predeterminado del sistema | proxy_only |
Plantillas de hardware
| ID | Sistema | Descripción |
|---|---|---|
macos-seeded-apple | macOS | GPU Apple independiente por semilla, recomendada para varios perfiles; predeterminada en macOS |
macos-host | macOS | Hardware de este equipo; solo se puede usar en un Mac |
macos-m1 | macOS | Apple M1 · 8GB |
macos-m3-pro | macOS | Apple M3 Pro · 18GB |
macos-m4-pro | macOS | Apple M4 Pro · 24GB |
windows-seeded-nvidia | Windows | GPU NVIDIA independiente por semilla, recomendada para varios perfiles; predeterminada en Windows |
windows-host | Windows | Hardware de este equipo; solo se puede usar en un equipo con Windows |
windows-10-rtx3060 | Windows | Windows 10 · RTX 3060 · 16GB |
windows-11-rtx4060 | Windows | Windows 11 · RTX 4060 · 16GB |
windows-11-rtx4070 | Windows | Windows 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-Keyo en el camporequestKeydel 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 409IDEMPOTENCY_RESULT_GONEen 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_CAPACITYhasta 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.
| HTTP | Error | Significado | Qué hacer |
|---|---|---|---|
| 400 | INVALID_PROFILE_INPUT | Campos de creación no válidos; details indica cada campo y el motivo | Corrija los campos indicados en details y vuelva a enviar la solicitud |
| 400 | query_not_allowed、body_not_allowed、json_body_required、invalid_json_body | La solicitud no cumple las reglas | Corríjala según “Reglas de solicitud” |
| 401 | unauthorized | Token incorrecto o caducado | Reinicie la API en Prism y use el token nuevo |
| 403 | invalid_host、browser_origin_not_allowed | No se acepta la dirección o el origen de la solicitud | Use 127.0.0.1 y llame a la API desde un script, no desde una página web |
| 403 | PRO_REQUIRED | La licencia Pro ya no es válida, o un núcleo fijado requiere Pro | Renueve o vuelva a activar Pro |
| 404 | not_found | La ruta o el método no existe | Revise “Endpoints” |
| 404 | PROFILE_NOT_FOUND | El perfil no existe o está en la papelera | Vuelva a obtener la lista de perfiles |
| 409 | IDEMPOTENCY_CONFLICT、IDEMPOTENCY_RESULT_GONE | Conflicto de clave de solicitud, o se ha eliminado un perfil creado con ella | Use otra clave de solicitud |
| 413 | request_too_large | El cuerpo supera los 96 KiB | Divídalo en varios lotes |
| 429 | rate_limited、IDEMPOTENCY_CAPACITY | Demasiadas solicitudes, o se han alcanzado 1000 claves de solicitud en 24 horas | Vuelva a intentarlo más tarde |
| 502 | MCP_REQUEST_FAILED y otros | Otros fallos de ejecución; por ejemplo, falta el núcleo, la prueba del proxy no se superó o hay un proceso huérfano | Actúe según message |
| 504 | BROKER_TIMEOUT | Prism no respondió en 60 segundos; es posible que la operación siga en curso | Consulte 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"]) # closedNode.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) // closedAPI 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 aGET /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.