API

PROMT SPACE API для агентов

OpenAI-compatible API PROMT SPACE: один ключ, единый баланс, история запросов и списание по фактическому usage.

1. Создание ключа

Владелец workspace выпускает ключ в разделе API-доступ. Секрет показывается только один раз.

Тот же ключ можно создать через кабинетный API, если у вас уже есть web-сессия и CSRF token.

curl https://promt.space/api/api-keys \
    -X POST \
    -H "Content-Type: application/json" \
    -H "X-CSRF-Token: <csrf>" \
    -d '{"name":"Production agent"}'

2. Список моделей

curl https://promt.space/v1/models \
    -H "Authorization: Bearer ps_live_..."

Ответ совместим с OpenAI model list и дополнен данными PROMT SPACE: типом модели, модальностями, контекстом и ценами в рублях за 1M токенов, если они доступны.

3. Конкретная модель

curl "https://promt.space/v1/models/openai/gpt-4.1-mini" \
    -H "Authorization: Bearer ps_live_..."

4. Проверка ключа

curl https://promt.space/v1/me \
    -H "Authorization: Bearer ps_live_..."

Endpoint возвращает workspace, активный ключ, scopes, активный тариф, capabilities и баланс: общий, hold, доступный остаток и расход за месяц.

5. Баланс

curl https://promt.space/v1/balance \
    -H "Authorization: Bearer ps_live_..."

Ответ возвращает баланс владельца workspace в копейках: общий остаток, hold, доступный остаток, расход за месяц и прогноз расхода.

6. Usage

curl "https://promt.space/v1/usage?from=2026-06-01&to=2026-06-30&model=openai/gpt-4.1-mini" \
    -H "Authorization: Bearer ps_live_..."

Параметры from/to принимают даты в формате YYYY-MM-DD. model необязателен. Endpoint возвращает количество запросов, токены, стоимость в копейках и среднюю latency.

7. История запросов

curl "https://promt.space/v1/requests?page=1&per_page=20" \
    -H "Authorization: Bearer ps_live_..."

curl https://promt.space/v1/requests/56cd6d0b-c9bd-4a42-a332-1a2e784ca21e \
    -H "Authorization: Bearer ps_live_..."

История отдаётся по рабочему пространству: prompt, response, модель, автор, токены, стоимость, latency и статус. per_page ограничен 100 записями.

8. Оценка стоимости

curl https://promt.space/v1/chat/completions/estimate \
    -H "Authorization: Bearer ps_live_..." \
    -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4.1-mini",
    "messages": [
      {"role": "user", "content": "Составь план запуска продукта"}
    ],
    "max_tokens": 1200
  }'

Endpoint возвращает прогноз стоимости в копейках, оценку input/output tokens, актуальный курс, наценку платформы и цену модели в рублях за 1M токенов. Hold не ставится.

9. Chat Completions

curl https://promt.space/v1/chat/completions \
    -H "Authorization: Bearer ps_live_..." \
    -H "Idempotency-Key: req_20260615_001" \
    -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4.1-mini",
    "messages": [
      {"role": "user", "content": "Составь план запуска продукта"}
    ],
    "temperature": 0.2,
    "max_tokens": 1200
  }'

10. Документы и PDF

PDF и документы можно передавать как base64 data URL в attachments. Сервер отправит их провайдеру как file content part вместе с последним user-сообщением.

PDF_B64=$(base64 -i report.pdf)

curl https://promt.space/v1/chat/completions \
    -H "Authorization: Bearer ps_live_..." \
    -H "Content-Type: application/json" \
  -d "{
    \"model\": \"anthropic/claude-sonnet-4\",
    \"messages\": [
      {\"role\": \"user\", \"content\": \"Сделай краткое резюме документа и выдели риски\"}
    ],
    \"attachments\": [
      {
        \"filename\": \"report.pdf\",
        \"mime_type\": \"application/pdf\",
        \"file_data\": \"data:application/pdf;base64,$PDF_B64\"
      }
    ]
  }"

Ограничение PROMT SPACE: до 5 файлов за запрос, до 10 МБ каждый. Файлы участвуют в оценке стоимости косвенно: провайдер может добавить токены после парсинга PDF.

11. Image и audio output

Для моделей с output_modalities image/audio передавайте modalities. В ответе message.content дополнительно содержит markdown-ссылки на media, а message.images/message.audios дают структурированные URL/data URL.

curl https://promt.space/v1/chat/completions \
    -H "Authorization: Bearer ps_live_..." \
    -H "Content-Type: application/json" \
  -d '{
    "model": "black-forest-labs/flux.2-klein-4b",
    "modalities": ["image"],
    "messages": [
      {"role": "user", "content": "Минималистичная иконка SaaS продукта в фиолетовом стиле"}
    ]
  }'

curl https://promt.space/v1/chat/completions \
    -H "Authorization: Bearer ps_live_..." \
    -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini-tts",
    "modalities": ["text", "audio"],
    "audio": {"voice": "alloy", "format": "wav"},
    "messages": [
      {"role": "user", "content": "Озвучь короткое приветствие для нового пользователя"}
    ]
  }'

12. Streaming

curl https://promt.space/v1/chat/completions \
    -N \
    -H "Authorization: Bearer ps_live_..." \
    -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4.1-mini",
    "stream": true,
    "messages": [
      {"role": "user", "content": "Напиши короткое приветствие"}
    ]
  }'

Streaming доступен на активных тарифах Pro, Business и Enterprise. На Start API вернёт ошибку с понятным текстом.

Формат ответа совместим с OpenAI SSE: последовательность data-событий и финальный data: [DONE]. Биллинг закрывается после завершения upstream stream; если клиент отключился, сервер дочитывает stream и всё равно закрывает hold.

13. Idempotency

Для non-streaming chat/completions передавайте заголовок Idempotency-Key. Если агент повторит тот же запрос с тем же ключом, API вернёт сохранённый ответ без нового hold, списания и дубля в истории.

Ключ действует 24 часа в рамках workspace. Повтор с другим body под тем же ключом вернёт 409 conflict. Для streaming этот заголовок пока не поддерживается.

14. OpenAI SDK

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.PROMT_SPACE_API_KEY,
  baseURL: "https://promt.space/v1",
});

const response = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-4",
  messages: [{ role: "user", content: "Привет" }],
});

Биллинг

Перед запросом система ставит hold по прогнозу стоимости. После ответа модели списывается фактическая стоимость по usage. Если запрос не выполнен, hold возвращается автоматически.

Ограничения текущей версии

  • Streaming доступен только на Pro, Business и Enterprise.
  • Нужно указывать конкретную модель, автовыбор для платных API-запросов запрещен.
  • Video generation работает через отдельную очередь провайдера и будет вынесен в отдельный endpoint.
  • Embeddings, rerank и transcription требуют специализированных форматов запросов и будут добавлены отдельными endpoint’ами.