Produit
API HTTP
URL de base https://promptflowengine.com/api/v1. JSON en entrée, JSON en sortie. Aucune authentification et rien n’est stocké ; le texte des prompts n’est jamais journalisé. Chaque réponse porte un en-tête x-request-id.
Vous découvrez les intégrations ? Connecter PromptFlowEngine compare les extensions, MCP et cette API, avec un client TypeScript testé et un guide de dépannage.
Endpoints
| Méthode | Chemin | Corps | Renvoie |
|---|---|---|---|
| GET | /health | — | statut, versions du moteur et de l’API |
| GET | /models | — | catalogue de modèles avec encodages et prix de référence |
| GET | /rules | — | catalogue de règles, dimensions, pénalités |
| POST | /analyze | prompt, model? | constats, qualité, tokens, sécurité, exigences, intention |
| POST | /validate | prompt | valid (aucun constat critique), constats |
| POST | /optimize | prompt, model?, mode?, goal?, tokenBudget? | candidat retenu, tous les candidats avec leur vérification, modifications, diff, écarts, suggestions |
| POST | /restructure | prompt, model?, scaffold? | prompt en sections, sections dont chaque ligne est étiquetée prompt ou engine, comptages, analyse avant et après |
| POST | /compare | a, b, model? | diff, écarts de tokens, de coût et de qualité, constats résolus et introduits |
| POST | /tokens | prompt, model? | nombre de tokens, méthode, comptages par section, coût estimé |
| POST | /scan | prompt | risque et signatures d’injection, comptages et positions des données sensibles, variables non délimitées |
| POST | /sanitize | text | texte dont les valeurs sensibles sont remplacées par des marqueurs |
mode : conservative | balanced | structured. goal : tokens | quality | balanced. model : tout identifiant de /models (par défaut gpt-4.1). scaffold : booléen, true par défaut ; voir la restructuration.
Authentification
Il n’y en a pas. L’API n’accepte ni clé, ni token, ni cookie, et ignore ceux que vous envoyez. Elle peut être appelée sans risque depuis un navigateur, un script ou l’extension Chrome, car elle ne détient aucune donnée utilisateur à protéger : chaque requête est calculée à partir de son propre corps, puis oubliée. Les abus sont limités par la limite de débit ci-dessous.
Exemple
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]}'Avec "goal":"tokens", le moteur conserverait plutôt Please summarize the notes. : un Summarize en début de phrase coûte deux tokens, ce candidat est donc un token moins cher.
{
"selected": "Summarize the notes.",
"tokenDelta": -4,
"changes": ["Removed repeated sentences", "Removed filler and politeness phrases"]
}Exemple de restructuration
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"]
}Le prompt complet se trouve dans text.
Limites
- Corps de requête jusqu’à 256 Ko ; chaque champ texte jusqu’à 100 000 caractères.
- 60 requêtes POST par minute et par IP cliente. Au-delà, vous recevez
429avecretry-after: 60. - CORS est ouvert (
*) sans identifiants : les navigateurs peuvent appeler l’API directement.
Erreurs
{ "error": { "type": "invalid_request", "message": "\"prompt\" is required.", "requestId": "…" } }| Statut | type |
|---|---|
| 400 | invalid_request : champ manquant ou de mauvais type, JSON invalide, mauvais content type |
| 404 | not_found : endpoint ou version d’API inconnus |
| 405 | method_not_allowed |
| 413 | payload_too_large |
| 429 | rate_limited |
| 500 | internal_error (aucun détail interne n’est exposé) |
Sécurité
- Chaque champ est contrôlé en type ; les modèles, modes et objectifs inconnus sont rejetés plutôt que devinés.
- Les réponses portent
cache-control: no-storeet une Content Security Policy qui interdit tout, si bien qu’une réponse ne peut jamais être affichée comme une page. - Les journaux enregistrent la route, le statut, la durée et une tranche de taille. Le texte des prompts n’est jamais journalisé.
/scanet/analyzeindiquent où se trouvent les données sensibles, jamais leur valeur. Ne comptez pas là-dessus pour le secret en transit : masquez d’abord en local avec la CLI ou l’extension Chrome.- Le prompt est analysé comme du texte et n’est jamais exécuté ni envoyé à un modèle ; une injection dans l’entrée ne peut donc pas modifier le comportement de l’API.
Assistance
Questions, limites plus élevées ou problème avec l’API : support@promptflowengine.com. Indiquez la route de la requête et le type de l’erreur ; n’envoyez jamais de clés API ni de texte de prompt contenant des secrets.