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.
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étodo | Caminho | Corpo | Retorna |
|---|---|---|---|
| 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 | /analyze | prompt, model? | achados, qualidade, tokens, segurança, requisitos, intenção |
| POST | /validate | prompt | valid (sem achados críticos), achados |
| POST | /optimize | prompt, model?, mode?, goal?, tokenBudget? | candidato selecionado, todos os candidatos com verificação, mudanças, diff, diferenças, sugestões |
| POST | /restructure | prompt, model?, scaffold? | prompt em seções, as seções com cada linha identificada como prompt ou engine, contagens, análise antes e depois |
| POST | /compare | a, b, model? | diff, diferenças de tokens, custo e qualidade, achados resolvidos e introduzidos |
| POST | /tokens | prompt, model? | contagem de tokens, método, contagens por seção, custo estimado |
| POST | /scan | prompt | risco e assinaturas de injeção, contagens e posições de dados sensíveis, variáveis sem delimitação |
| POST | /sanitize | text | texto 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 -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.
{
"selected": "Summarize the notes.",
"tokenDelta": -4,
"changes": ["Removed repeated sentences", "Removed filler and politeness phrases"]
}Exemplo de reestruturação
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]}'{
"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
429comretry-after: 60. - O CORS é aberto (
*) sem credenciais, então navegadores podem chamar a API diretamente.
Erros
{ "error": { "type": "invalid_request", "message": "\"prompt\" is required.", "requestId": "…" } }| Status | type |
|---|---|
| 400 | invalid_request: campo ausente ou de tipo errado, JSON inválido, content type incorreto |
| 404 | not_found: endpoint ou versão da API desconhecidos |
| 405 | method_not_allowed |
| 413 | payload_too_large |
| 429 | rate_limited |
| 500 | internal_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-storee 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.
/scane/analyzeinformam 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.