Producto
API HTTP
URL base https://promptflowengine.com/api/v1. Entra JSON, sale JSON. Sin autenticación y sin almacenar nada; el texto de los prompts nunca se registra. Cada respuesta incluye una cabecera x-request-id.
¿Primera vez con las integraciones? Conectar PromptFlowEngine compara las extensiones, MCP y esta API, con un cliente TypeScript probado y solución de problemas.
Endpoints
| Método | Ruta | Cuerpo | Devuelve |
|---|---|---|---|
| GET | /health | — | estado y versiones del motor y de la API |
| GET | /models | — | catálogo de modelos con codificaciones y precios de referencia |
| GET | /rules | — | catálogo de reglas, dimensiones y penalizaciones |
| POST | /analyze | prompt, model? | hallazgos, calidad, tokens, seguridad, requisitos e intención |
| POST | /validate | prompt | valid (sin hallazgos críticos) y hallazgos |
| POST | /optimize | prompt, model?, mode?, goal?, tokenBudget? | candidato seleccionado, todos los candidatos con su verificación, cambios, diff, diferencias y sugerencias |
| POST | /restructure | prompt, model?, scaffold? | prompt por secciones, las secciones con cada línea etiquetada como prompt o engine, recuentos y análisis antes y después |
| POST | /compare | a, b, model? | diff, diferencias de tokens, coste y calidad, y hallazgos resueltos e introducidos |
| POST | /tokens | prompt, model? | recuento de tokens, método, recuentos por sección y coste estimado |
| POST | /scan | prompt | riesgo y firmas de inyección, recuentos y posiciones de datos sensibles y variables sin delimitar |
| POST | /sanitize | text | texto con los valores sensibles sustituidos por marcadores |
mode: conservative | balanced | structured. goal: tokens | quality | balanced. model: cualquier id de /models (por defecto gpt-4.1). scaffold: booleano, por defecto true; consulta la reestructuración.
Autenticación
No hay. La API no acepta clave, token ni cookie, e ignora los que envíes. Es seguro llamarla desde un navegador, un script o la extensión de Chrome porque no guarda datos de usuarios que proteger: cada solicitud se calcula a partir de su propio cuerpo y se olvida. El abuso se limita con el límite de solicitudes indicado más abajo.
Ejemplo
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]}'Con "goal":"tokens", el motor conservaría en su lugar Please summarize the notes.: un Summarize al inicio de frase cuesta dos tokens, así que ese candidato es un token más barato.
{
"selected": "Summarize the notes.",
"tokenDelta": -4,
"changes": ["Removed repeated sentences", "Removed filler and politeness phrases"]
}Ejemplo de reestructuración
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"]
}El prompt completo está en text.
Límites
- Cuerpo de la solicitud de hasta 256 KB; cada campo de texto, hasta 100.000 caracteres.
- 60 solicitudes POST por minuto por IP de cliente. Por encima del límite recibes
429conretry-after: 60. - CORS está abierto (
*) sin credenciales, así que los navegadores pueden llamar a la API directamente.
Errores
{ "error": { "type": "invalid_request", "message": "\"prompt\" is required.", "requestId": "…" } }| Estado | type |
|---|---|
| 400 | invalid_request: campo ausente o de tipo incorrecto, JSON no válido o content type incorrecto |
| 404 | not_found: endpoint o versión de la API desconocidos |
| 405 | method_not_allowed |
| 413 | payload_too_large |
| 429 | rate_limited |
| 500 | internal_error (no se exponen detalles internos) |
Seguridad
- Se comprueba el tipo de cada campo; los modelos, modos y objetivos desconocidos se rechazan en lugar de adivinarse.
- Las respuestas llevan
cache-control: no-storey una Content Security Policy que lo deniega todo, así que una respuesta nunca puede mostrarse como página. - Los registros guardan la ruta, el estado, la duración y un rango de tamaño. El texto de los prompts nunca se registra.
/scany/analyzeindican dónde están los datos sensibles, nunca su valor. No confíes en ello para mantener el secreto en tránsito: oculta los datos primero en local con la CLI o la extensión de Chrome.- El prompt se analiza como texto y nunca se ejecuta ni se envía a un modelo, así que una inyección en la entrada no puede cambiar el comportamiento de la API.
Soporte
Preguntas, límites más altos o un problema con la API: support@promptflowengine.com. Incluye la ruta de la solicitud y el type del error; nunca envíes claves API ni texto de prompts que contenga secretos.