Produto

API HTTP

URL base https://promptflowengine.com/api/v1. JSON na entrada, JSON na saída. Sem autenticação e nada é armazenado; o texto dos prompts nunca é registrado em log. Toda resposta traz um cabeçalho x-request-id.

Para trabalho em massa ou dados sensíveis, rode o mesmo motor localmente com a CLI: sem rede e sem limite de requisições.

Novo nas integrações? Conectar o PromptFlowEngine compara as extensões, o MCP e esta API, com um cliente TypeScript testado e solução de problemas.

Endpoints

MétodoCaminhoCorpoRetorna
GET/health—status, versões do motor e da API
GET/models—catálogo de modelos com codificações e preços de referência
GET/rules—catálogo de regras, dimensões, penalidades
POST/analyzeprompt, model?achados, qualidade, tokens, segurança, requisitos, intenção
POST/validatepromptvalid (sem achados críticos), achados
POST/optimizeprompt, model?, mode?, goal?, tokenBudget?candidato selecionado, todos os candidatos com verificação, mudanças, diff, diferenças, sugestões
POST/restructureprompt, model?, scaffold?prompt em seções, as seções com cada linha identificada como prompt ou engine, contagens, análise antes e depois
POST/comparea, b, model?diff, diferenças de tokens, custo e qualidade, achados resolvidos e introduzidos
POST/tokensprompt, model?contagem de tokens, método, contagens por seção, custo estimado
POST/scanpromptrisco e assinaturas de injeção, contagens e posições de dados sensíveis, variáveis sem delimitação
POST/sanitizetexttexto com os valores sensíveis substituídos por marcadores

mode: conservative | balanced | structured. goal: tokens | quality | balanced. model: qualquer id de /models (padrão gpt-4.1). scaffold: booleano, padrão true; veja a reestruturação.

Autenticação

Não há. A API não aceita chave, token nem cookie e ignora os que você enviar. É seguro chamá-la de um navegador, de um script ou da extensão do Chrome, porque ela não guarda dados de usuários a proteger: cada requisição é calculada a partir do próprio corpo e esquecida. O abuso é limitado pelo limite de requisições abaixo.

Exemplo

curl
curl -s https://promptflowengine.com/api/v1/optimize \
  -H 'content-type: application/json' \
  -d '{"prompt":"Please summarize the notes. Please summarize the notes.","mode":"balanced"}' \
  | jq '{selected: .selected.text, tokenDelta, changes: [.changes[].title]}'

Com "goal":"tokens", o motor manteria Please summarize the notes.: um Summarize no início da frase custa dois tokens, então esse candidato é um token mais barato.

resposta (resumida, saída real)
{
  "selected": "Summarize the notes.",
  "tokenDelta": -4,
  "changes": ["Removed repeated sentences", "Removed filler and politeness phrases"]
}

Exemplo de reestruturação

curl
curl -s https://promptflowengine.com/api/v1/restructure \
  -H 'content-type: application/json' \
  -d '{"prompt":"fix login issue and make google login work and dont break anything"}' \
  | jq '{intent, topics, counts, sections: [.sections[].heading]}'
resposta (resumida)
{
  "intent": "debugging",
  "topics": ["authentication"],
  "counts": { "prompt": 4, "engine": 20, "codebase": 0 },
  "sections": ["Role", "Objective", "Requirements", "Constraints", "Edge cases", "Testing", "Acceptance criteria", "Expected output"]
}

O prompt completo está em text.

Limites

  • Corpo da requisição de até 256 KB; cada campo de texto de até 100.000 caracteres.
  • 60 requisições POST por minuto por IP de cliente. Acima do limite você recebe 429 com retry-after: 60.
  • O CORS é aberto (*) sem credenciais, então navegadores podem chamar a API diretamente.

Erros

formato do erro
{ "error": { "type": "invalid_request", "message": "\"prompt\" is required.", "requestId": "…" } }
Statustype
400invalid_request: campo ausente ou de tipo errado, JSON inválido, content type incorreto
404not_found: endpoint ou versão da API desconhecidos
405method_not_allowed
413payload_too_large
429rate_limited
500internal_error (nenhum detalhe interno é exposto)

Segurança

  • Todos os campos têm o tipo verificado; modelos, modos e objetivos desconhecidos são rejeitados em vez de adivinhados.
  • As respostas trazem cache-control: no-store e uma Content Security Policy que nega tudo, então uma resposta nunca pode ser exibida como página.
  • Os logs registram rota, status, duração e uma faixa de tamanho. O texto dos prompts nunca é registrado.
  • /scan e /analyze informam onde estão os dados sensíveis, nunca o valor. Não conte com isso para manter o sigilo em trânsito: oculte antes, localmente, com a CLI ou a extensão do Chrome.
  • O prompt é analisado como texto e nunca é executado nem enviado a um modelo, então uma injeção na entrada não altera o comportamento da API.

Suporte

Dúvidas, limites maiores ou um problema com a API: support@promptflowengine.com. Inclua a rota da requisição e o type do erro; nunca envie chaves de API nem texto de prompt que contenha segredos.