Продукт
HTTP API
Базовый URL: https://promptflowengine.com/api/v1. JSON на входе, JSON на выходе. Аутентификации нет, ничего не сохраняется, текст промпта никогда не попадает в журналы. Каждый ответ содержит заголовок x-request-id.
Впервые знакомитесь с интеграциями? Подключение PromptFlowEngine сравнивает расширения, MCP и этот API и содержит проверенные клиенты на TypeScript и разбор неполадок.
Эндпоинты
| Метод | Путь | Тело запроса | Возвращает |
|---|---|---|---|
| GET | /health | — | Статус, версии движка и API |
| GET | /models | — | Каталог моделей с кодировками и справочными ценами |
| GET | /rules | — | Каталог правил, измерения, штрафы |
| POST | /analyze | prompt, model? | Замечания, качество, токены, безопасность, требования, намерение |
| POST | /validate | prompt | valid (нет критических замечаний), замечания |
| POST | /optimize | prompt, model?, mode?, goal?, tokenBudget? | Выбранный кандидат, все кандидаты с проверкой, изменения, diff, дельты, рекомендации |
| POST | /restructure | prompt, model?, scaffold? | Структурированный промпт, части с пометкой prompt или engine для каждой строки, счётчики, анализ до и после |
| POST | /compare | a, b, model? | Diff, дельты токенов/стоимости/качества, устранённые и новые замечания |
| POST | /tokens | prompt, model? | Число токенов, способ подсчёта, подсчёт по разделам, оценка стоимости |
| POST | /scan | prompt | Риск инъекции и сигнатуры, число и места чувствительных данных, переменные без разделителей |
| POST | /sanitize | text | Текст, где чувствительные значения заменены заполнителями |
mode: conservative | balanced | structured. goal: tokens | quality | balanced. model: любой id из /models (по умолчанию gpt-4.1). scaffold: логическое значение, по умолчанию true; см. реструктуризацию.
Аутентификация
Её нет. API не принимает ключи, токены и cookie, а если вы их отправите, они игнорируются. Его можно спокойно вызывать из браузера, скрипта или расширения для Chrome, потому что он не хранит ничего, что нужно защищать: каждый запрос вычисляется только по его собственному телу и затем отбрасывается. Злоупотребления ограничиваются лимитами частоты, описанными ниже.
Пример
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]}'С "goal":"tokens" движок вместо этого оставляет Please summarize the notes.: слово Summarize в начале предложения стоит два токена, поэтому такой кандидат на токен короче.
{
"selected": "Summarize the notes.",
"tokenDelta": -4,
"changes": ["Removed repeated sentences", "Removed filler and politeness phrases"]
}Пример реструктуризации
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"]
}Полный промпт находится в text.
Лимиты
- Тело запроса до 256 КБ; до 100 000 символов в каждом текстовом поле.
- 60 POST-запросов в минуту с одного IP клиента. При превышении вы получите
429сretry-after: 60. - CORS открыт без учётных данных (
*), поэтому браузеры могут вызывать API напрямую.
Ошибки
{ "error": { "type": "invalid_request", "message": "\"prompt\" is required.", "requestId": "…" } }| Коды статуса | type |
|---|---|
| 400 | invalid_request: поле отсутствует или имеет неверный тип, некорректный JSON, неверный content type |
| 404 | not_found: неизвестный эндпоинт или версия API |
| 405 | method_not_allowed |
| 413 | payload_too_large |
| 429 | rate_limited |
| 500 | internal_error (внутренние детали не раскрываются) |
Безопасность
- Тип каждого поля проверяется; неизвестные модели, режимы и цели отклоняются, а не угадываются.
- Ответы содержат
cache-control: no-storeи Content Security Policy, запрещающую всё, поэтому ответ никогда не отображается как страница. - В журнал попадают только маршрут, статус, длительность и диапазон размера. Текст промптов в журналы не пишется.
/scanи/analyzeсообщают о местах чувствительных данных, но никогда не возвращают сами значения. Не полагайтесь на них для сохранения конфиденциальности при передаче: сначала замаскируйте данные локально через CLI или расширение для Chrome.- Промпты анализируются только как текст, никогда не выполняются и не отправляются модели, поэтому инъекция в промпте не может изменить поведение API.
Поддержка
Вопросы, повышенные лимиты или сбои API: support@promptflowengine.com. Укажите маршрут запроса и type ошибки; никогда не присылайте ключи API и тексты промптов с секретами.