API REFERENCE · PRISM PRO

Referência da API local: gerencie perfis de navegador com seus scripts.

A API de automação local do Prism Pro escuta apenas em 127.0.0.1, no seu computador, e usa um token de acesso gerado a cada inicialização. Qualquer linguagem capaz de enviar requisições HTTP pode usá-la para criar perfis, um a um ou em lote, e depois consultá-los, iniciá-los e fechá-los.

Atualizado em · Com base no código-fonte do cliente Prism 0.3.22

Visão geral

A API local é um recurso do Prism Pro para gerenciar perfis em lote com seus próprios scripts: crie perfis a partir dos seus dados, inicie-os em sequência, verifique o status deles e feche-os quando terminar. Ela gerencia apenas os perfis em si — não lê cookies, senhas, credenciais de proxy nem o conteúdo das páginas, e não oferece endpoints de depuração para Puppeteer / Playwright. Para que a IA leia páginas, clique e preencha formulários, use o MCP.

Resumo da API local
ItemDescrição
Endereçohttp://127.0.0.1:<port>; a porta é escolhida aleatoriamente a cada inicialização, e só são aceitas requisições deste computador
AutenticaçãoCabeçalho Authorization: Bearer <token>; o token aparece uma vez, ao iniciar a API, e deixa de valer quando a API é parada
Formato dos dadosJSON (UTF-8); nas respostas bem-sucedidas, o resultado fica no campo result
Corpo da requisiçãoSó os endpoints de criação aceitam corpo JSON, de até 96 KiB
Limite de requisiçõesAté 120 requisições a cada 60 segundos, limite compartilhado com o MCP
Tempo limiteCada requisição espera no máximo 60 segundos
DisponibilidadePrism Pro; igual no macOS e no Windows; os endpoints de criação exigem a versão 0.3.22 ou posterior

Início rápido

  1. Iniciar a API local

    No Prism, abra “API de automação” na barra lateral esquerda e clique em “Iniciar API local”. Este recurso requer o Prism Pro.

  2. Copiar o endereço e o token

    A janela mostra “Endereço da API” e “Token de acesso desta sessão”. O token aparece só uma vez, quando a API inicia com sucesso, então copie-o na hora; se precisar de um novo token depois, pare e reinicie a API.

  3. Enviar a primeira requisição

    Defina duas variáveis em um terminal, verifique o status do serviço e liste os perfis. Se a resposta contiver "state": "running", o endereço e o token estão funcionando.

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"

No Windows PowerShell, curl é um alias de outro comando: digite curl.exe ou use o Invoke-RestMethod, nativo do 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

Regras de requisição

A API só aceita requisições enviadas por scripts ou programas deste computador. Uma requisição que não cumpra uma destas regras não é executada e retorna o erro indicado na tabela:

Regras de requisição e erros correspondentes
RegraHTTPErro
Use 127.0.0.1, não localhost: o cabeçalho Host precisa coincidir exatamente com o endereço da API403invalid_host
Envie Authorization: Bearer <token> em todas as requisições401unauthorized
Sem cabeçalho Origin de navegador; por isso, JavaScript em páginas da web e em extensões do navegador não consegue chamar a API403browser_origin_not_allowed
Sem parâmetros de consulta na URL (?…)400query_not_allowed
Somente os caminhos e métodos listados abaixo404not_found
Só os endpoints de criação aceitam corpo; as requisições de inicialização, de fechamento e as demais não podem enviar nem mesmo {}400body_not_allowed
Os endpoints de criação usam Content-Type: application/json, e o corpo é um objeto JSON400json_body_required / invalid_json_body
O corpo da requisição tem no máximo 96 KiB413request_too_large
Até 120 requisições a cada 60 segundos; requisições com falha e requisições do MCP também contam429rate_limited

O Prism processa as requisições da API local e do MCP uma de cada vez, na ordem em que chegam. Iniciar um perfil inclui testar o proxy e abrir o navegador, o que costuma levar alguns segundos; nesse meio-tempo, as requisições seguintes ficam na fila. Espere cada requisição retornar antes de enviar a próxima.

Lista de endpoints

Endpoints da API local
MétodoCaminhoFunção
GET/v1/statusVerifica se o serviço está disponível
GET/v1/profilesLista todos os perfis (exceto os da lixeira)
GET/v1/profiles/{id}/statusConsulta um perfil
POST/v1/profiles/{id}/startInicia um perfil
POST/v1/profiles/{id}/closeFecha um perfil e mantém os dados
POST/v1/profilesCria um perfil (a partir da 0.3.22)
POST/v1/profiles/batchCria de 1 a 50 perfis de uma vez (a partir da 0.3.22)

{id} é o ID do perfil, obtido no resultado de GET /v1/profiles. As respostas bem-sucedidas usam o status HTTP 200; com exceção de GET /v1/status, elas trazem o resultado no campo result. A API não tem endpoints para editar ou excluir perfis.

Objeto de perfil

A lista de perfis, o status do perfil, a inicialização e o fechamento retornam o mesmo objeto de perfil:

Campos do objeto de perfil
CampoTipoDescrição
idstringID do perfil, usado pelos outros endpoints
serialNumberinteiroNúmero do perfil exibido no aplicativo; nunca é reutilizado após a exclusão
namestringNome do perfil
groupstringGrupo; string vazia quando o perfil não tem grupo
tagsarray de stringsTags
statusstringclosed fechado, starting iniciando, running em execução, stopping fechando, orphaned processo remanescente, error erro
lastOpenedAtstringData e hora da última abertura (ISO 8601, UTC); o campo não aparece em perfis que nunca foram abertos
{
  "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"
  }
}

As respostas nunca incluem endereços ou credenciais de proxy, parâmetros de impressão digital, cookies, senhas, dados de sites nem dados de extensões.

Consultar, iniciar e fechar

GET /v1/status

Retorna o status do serviço, para confirmar que o endereço e o token funcionam. É a única resposta que não vem dentro de result:

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

GET /v1/profiles

Retorna um array de objetos de perfil, com os modificados mais recentemente primeiro. Perfis na lixeira não aparecem.

GET /v1/profiles/{id}/status

Retorna o status atual de um perfil. Se o perfil não existir ou estiver na lixeira, a API retorna 404 PROFILE_NOT_FOUND.

POST /v1/profiles/{id}/start

  • Funciona como clicar em “Abrir” no aplicativo: o Prism verifica o núcleo e a licença dos núcleos Pro, testa o proxy, confere se o IP de saída mudou e então abre a janela do navegador. Em caso de sucesso, retorna o objeto de perfil com status running.
  • Se o perfil já estiver em execução, o status atual é retornado e nada é aberto duas vezes.
  • O Prism só processa a próxima requisição depois que a requisição de inicialização retorna. Para iniciar vários perfis, basta chamar o endpoint para cada um, em sequência; quantos perfis podem rodar ao mesmo tempo depende da memória e da CPU do computador.
  • Se o núcleo não estiver instalado, o teste de proxy falhar, o IP de saída do proxy tiver mudado (com a política block) ou houver um processo remanescente, a inicialização falha com 502, e error.message explica o motivo.
  • Pela API, as situações em que o aplicativo pediria sua confirmação para continuar simplesmente falham — por exemplo, quando as fontes de dados geográficos divergem sobre a saída do proxy. Ao receber esse tipo de erro, abra o perfil no aplicativo Prism ou mude a identidade de rede dele para manual.
  • Os perfis para os quais o endpoint de inicialização foi chamado (inclusive os que já estavam em execução no momento da chamada) ficam registrados e são fechados juntos quando você clica em “Parada de emergência” na janela “API de automação”. “Parar API”, assim como parar o MCP ou acionar a parada de emergência na janela do MCP, apenas interrompe a API; esses perfis continuam abertos.

POST /v1/profiles/{id}/close

Fecha a janela do navegador, mantém os dados do perfil e retorna o objeto de perfil com status closed; se o perfil não estiver em execução, retorna closed imediatamente. Se o navegador não for encerrado em até 8 segundos e continuar usando o diretório de dados, o status retornado é orphaned; chamar o endpoint de fechamento mais uma vez encerra o processo remanescente.

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"

Criar perfis

Os endpoints de criação salvam os novos perfis como fechados, sem abrir o navegador. Todos os campos são opcionais: os omitidos recebem os mesmos valores padrão de “Novo perfil” no aplicativo, e cada perfil ganha uma nova semente de impressão digital. Campos desconhecidos são recusados.

Criar um 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" }
  }'

Em caso de sucesso, o novo perfil é retornado:

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

Criar em lote

O corpo de POST /v1/profiles/batch é um array profiles de 1 a 50 itens por requisição, cada um com o mesmo formato da criação individual, exceto que requestKey fica no nível superior do corpo ou no cabeçalho. O Prism valida todas as configurações primeiro: se alguma tiver erro, nada é criado, e a mensagem de erro indica o perfil e o campo com problema (profiles[1] é o segundo perfil; a contagem começa em 0). Os resultados voltam na ordem 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 do perfil

Campos para criar um perfil
CampoDescriçãoSe omitido
nameNome, de 1 a 60 caracteres“API” seguido de um número, como API 8: a quantidade atual de perfis mais 1, que aumenta em sequência dentro de um lote; pode repetir um nome já existente
groupGrupo, até 40 caracteresSem grupo
tagsArray de tags: até 20, cada uma com até 30 caracteresNenhum
noteNotas, até 500 caracteresNenhum
colorCor, no formato #RRGGBBPróxima cor da paleta, em rodízio
startUrlsArray de páginas de inicialização, até 50; só http / https, sem usuário nem senha; endereços sem protocolo usam httpsSite oficial do Prism
proxyProxy; veja a tabela abaixoConexão direta
fingerprintOpções de impressão digital; veja a tabela abaixoIgual a um novo perfil criado no aplicativo
extensionIdsIDs internos do Prism das extensões instaladas, até 50. Na janela “Extensões”, o nome da pasta no caminho da extensão, …/<ID>/extension, é esse ID; não é o ID da extensão na Chrome Web StoreNenhuma extensão
kernelVersionFixa uma versão do núcleo, com quatro números, como 144.0.7559.132; essa versão precisa estar instalada quando o perfil for iniciadoSegue o núcleo padrão
requestKeyChave de requisição para repetir a criação com segurança; veja “Novas tentativas seguras”Nenhum

Campos de proxy

Campos de proxy (proxy)
CampoDescrição
protocolObrigatório: direct, http, https ou socks5
hostNome do host ou IP, sem protocolo, porta nem credenciais; obrigatório quando não for direct
portInteiro de 1 a 65535; obrigatório quando não for direct
username、passwordOpcionais. A senha fica criptografada neste computador e nunca é retornada por nenhum endpoint

Campos de impressão digital

Campos de impressão digital (fingerprint)
CampoDescriçãoSe omitido
platformmacos ou windowsSegue o modelo de hardware; sem modelo definido, o sistema deste computador
hardwareProfileIdModelo de hardware; veja a tabela abaixo. A versão do sistema, o número de núcleos da CPU e o tamanho da tela vêm do modeloO modelo com GPU “definida pela semente” do sistema correspondente
seedSemente de impressão digital, um inteiro de 0 a 4294967295; a mesma semente, com as demais configurações de impressão digital iguais, gera a mesma impressão digitalGerada aleatoriamente
brandChrome ou EdgeChrome
brandVersionVersão do navegador. Em geral, deixe em branco para usar a versão do núcleo; se preenchida, a versão principal precisa coincidir com a do núcleo usado na inicialização, ou o perfil não iniciaSegue o núcleo
languageIdioma da interface, como en-USO idioma do sistema deste computador
acceptLanguagesCabeçalho Accept-LanguageGerado a partir do idioma
timezoneFuso horário IANA, como America/New_YorkO fuso horário deste computador
networkIdentityModeproxy: testa a saída do proxy antes de iniciar e segue o fuso horário e a geolocalização dela, e também o idioma quando o país da saída é reconhecido; manual: usa sempre os valores informadosproxy
proxyExitPolicyQuando o IP de saída do proxy difere do último teste: block faz esta inicialização falhar, e iniciar de novo conta como confirmação — por isso, scripts não devem repetir automaticamente a requisição após esse erro; warn apenas avisablock
webrtcPolicyproxy_only proteção contra vazamento; public_only somente interface pública; default padrão do sistemaproxy_only

Modelos de hardware

IDs dos modelos de hardware
IDSistemaDescrição
macos-seeded-applemacOSGPU Apple definida pela semente, recomendada para vários perfis; padrão no macOS
macos-hostmacOSHardware nativo deste computador; só no Mac
macos-m1macOSApple M1 · 8GB
macos-m3-promacOSApple M3 Pro · 18GB
macos-m4-promacOSApple M4 Pro · 24GB
windows-seeded-nvidiaWindowsGPU NVIDIA definida pela semente, recomendada para vários perfis; padrão no Windows
windows-hostWindowsHardware nativo deste computador; só em PCs com Windows
windows-10-rtx3060WindowsWindows 10 · RTX 3060 · 16GB
windows-11-rtx4060WindowsWindows 11 · RTX 4060 · 16GB
windows-11-rtx4070WindowsWindows 11 · RTX 4070 · 32GB

Um modelo que não corresponda a platform é recusado. Posição e tamanho da janela, cookies, dados de extensões e configurações semelhantes não podem ser definidos pela API; altere-os no aplicativo Prism depois da criação.

Novas tentativas seguras

Quando a rede cai ou uma requisição esgota o tempo limite, você pode não saber se o perfil foi criado. Informe uma chave de requisição em cada criação; assim, uma nova tentativa nunca cria o perfil duas vezes:

  • Envie a chave no cabeçalho Idempotency-Key ou no campo requestKey do corpo: de 8 a 128 caracteres, com letras ASCII (a–z, A–Z), números e . _ : -. Se enviar nos dois lugares, os valores precisam ser iguais.
  • Repetir a requisição com a mesma chave e o mesmo conteúdo em até 24 horas retorna os perfis criados na primeira vez (HTTP 200), mesmo depois que o Prism é reiniciado.
  • A mesma chave com conteúdo diferente retorna 409 IDEMPOTENCY_CONFLICT. Se um perfil criado na primeira requisição tiver sido excluído (inclusive movido para a lixeira), a API retorna 409 IDEMPOTENCY_RESULT_GONE em vez de recriá-lo sem avisar; para criá-lo de novo, use outra chave.
  • Depois de 24 horas, a mesma chave conta como uma nova requisição.
  • Até 1.000 requisições com chave ficam guardadas por 24 horas, um limite compartilhado com a criação pelo MCP (cada criação pelo MCP conta como uma); ao atingir o limite, a API retorna 429 IDEMPOTENCY_CAPACITY até que registros antigos expirem.
  • Chaves e conteúdos das requisições ficam neste computador apenas como resumos criptográficos, nunca em texto puro; assim, nenhuma senha de proxy é armazenada junto com eles.

Gere as chaves a partir dos seus próprios dados, como a linha de uma planilha ou o número de um pedido: shop-b-001.

Tratamento de erros

Quando a requisição é recusada logo na entrada (veja “Regras de requisição”), error é uma string, como {"error":"unauthorized"}. Quando o Prism falha ao processar a requisição, error é um 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" }
    ]
  }
}

Programas devem se basear no status HTTP e em code; message é uma explicação para leitura humana, em parte em chinês, e o texto pode mudar entre versões. Quando retryable é true, a mesma requisição pode ser repetida mais tarde, sem alterações. details só aparece em erros de campos de criação, com no máximo 20 itens, e nunca repete os valores enviados.

Status HTTP e códigos de erro
HTTPErroSignificadoO que fazer
400INVALID_PROFILE_INPUTCampos de criação inválidos; details lista cada campo e o motivoCorrija os campos indicados em details e envie de novo
400query_not_allowed、body_not_allowed、json_body_required、invalid_json_bodyA requisição não segue as regrasCorrija conforme “Regras de requisição”
401unauthorizedToken incorreto ou expiradoReinicie a API no Prism e use o novo token
403invalid_host、browser_origin_not_allowedEndereço ou origem da requisição não aceitosUse 127.0.0.1 e faça a chamada de um script, não de uma página da web
403PRO_REQUIREDA licença Pro deixou de ser válida, ou o núcleo fixado exige o ProRenove ou reative o Pro
404not_foundCaminho ou método inexistenteConfira a “Lista de endpoints”
404PROFILE_NOT_FOUNDO perfil não existe ou está na lixeiraObtenha a lista de perfis de novo
409IDEMPOTENCY_CONFLICT、IDEMPOTENCY_RESULT_GONEConflito de chave de requisição, ou um perfil criado com ela foi excluídoUse outra chave de requisição
413request_too_largeCorpo da requisição maior que 96 KiBDivida em vários lotes
429rate_limited、IDEMPOTENCY_CAPACITYMuitas requisições, ou 1.000 chaves de requisição em 24 horasTente novamente mais tarde
502MCP_REQUEST_FAILED e outrosOutras falhas de execução — por exemplo, núcleo ausente, teste de proxy com falha ou processo remanescenteAja conforme o campo message
504BROKER_TIMEOUTO Prism não respondeu em 60 segundos; a operação pode ainda estar em andamentoConsulte o status antes; repita requisições de criação com a mesma chave

MCP_REQUEST_FAILED é um nome de erro genérico usado internamente pelo Prism; a API local também o usa.

Exemplos de código

Substitua o endereço e o token dos exemplos pelos valores exibidos na janela do Prism. Os exemplos criam perfis e depois iniciam e fecham um perfil recém-criado.

Python

Requer 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

O Node.js 18 ou posterior já inclui fetch, então não é preciso instalar dependências:

// 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 e MCP

A API local é feita para os scripts que você mesmo escreve; clientes de IA devem se conectar ao Prism pelo MCP. O MCP usa token e permissões próprios: só os perfis permitidos em “IA local · MCP” ficam visíveis para a IA, e a IA não pode chamar a API local. Os dois compartilham o mesmo serviço local e o limite de 120 requisições a cada 60 segundos; parar o MCP ou acionar a parada de emergência do MCP também interrompe a API local.

A IA também pode criar perfis com as ferramentas MCP prism_create_profile e prism_create_profiles, que aceitam os mesmos campos desta página. Para isso, ative “Permitir que a IA crie perfis” em “IA local · MCP” (desativada por padrão); se a IA pode controlar os novos perfis depende do modo de acesso aos perfis que você definiu. O MCP e a API local mantêm chaves de requisição separadas, mas compartilham o limite de 1.000 registros em 24 horas.

Segurança

  • O token é a chave para gerenciar os perfis deste computador: não o coloque em repositórios de código, logs nem históricos de chat. Se suspeitar de vazamento, pare e reinicie a API; o token antigo deixa de valer na hora.
  • A API escuta apenas em 127.0.0.1, então outros dispositivos da rede local ou da internet não conseguem acessá-la diretamente. A verificação do Host serve principalmente para barrar navegadores e usos acidentais, e não substitui um controle de acesso; não exponha a API com redirecionamento de portas nem proxy reverso.
  • Outros programas deste computador também podem chamar a API se obtiverem o token. Ative-a só em computadores confiáveis e clique em “Parar API” quando terminar.
  • “Parada de emergência”, na janela “API de automação”, interrompe a API e fecha os perfis que ela iniciou nesta sessão e que ainda estão em execução.
  • Cada requisição executada pelo Prism é registrada no log de auditoria local vault/logs/automation-audit.jsonl (no diretório de dados do Prism), que guarda a data e hora, a ação, o resultado, o ID da requisição, os IDs dos perfis e o motivo da falha — nunca o token, o conteúdo da requisição nem o conteúdo das páginas. Requisições recusadas pelas regras de requisição e chamadas a GET /v1/status não são registradas.

Perguntas frequentes

Posso chamar a API de uma página da web ou de uma extensão do navegador?
Não. Requisições enviadas por um navegador levam o cabeçalho Origin, que a API recusa. Faça as chamadas de um terminal, de um script ou de um programa local.
Por que recebo 403 ao usar localhost?
A API exige que o cabeçalho Host coincida exatamente com o 127.0.0.1 e a porta do endereço da API, então localhost é recusado. Use 127.0.0.1 como nome do host no endereço.
O que fazer se a janela “API de automação” mostra a API em execução, mas sem token?
Com o MCP habilitado, o Prism inicia automaticamente o serviço local compartilhado pela API e pelo MCP e, nesse caso, a janela mostra apenas o endereço. O token só aparece uma vez, quando você clica em “Iniciar API local” e a API inicia com sucesso: clique em “Parar API” e depois em “Iniciar API local” para obter um novo token. Enquanto o serviço estiver parado, a conexão do MCP também fica interrompida.
O token antigo continua valendo depois de reiniciar o Prism?
Não. Cada vez que a API é iniciada, são gerados uma nova porta e um novo token; ao parar a API ou sair do Prism, o token antigo deixa de valer.
Posso editar ou excluir perfis pela API?
Não. A API pode criar, consultar, iniciar e fechar perfis; para editar ou excluir perfis, use o aplicativo Prism.
Posso conectar Puppeteer, Playwright ou Selenium?
Não. A API não oferece porta de depuração nem endereço WebDriver. Para ações dentro das páginas, deixe um cliente de IA fazê-las pelo MCP.
Posso iniciar muitos perfis de uma vez?
Sim: chame o endpoint de inicialização para cada perfil, um de cada vez. O Prism processa as requisições em ordem e só passa para a próxima quando o perfil termina de iniciar; quantos perfis podem rodar ao mesmo tempo depende da memória e da CPU do computador.
Funciona também no Windows?
Sim. O Prism Pro oferece a mesma API local no macOS e no Windows. No Windows PowerShell, use curl.exe ou Invoke-RestMethod.