Перейти к основному содержимому

Ограниченная бета

Границы публичного API

Разница между стабильными интерфейсами задач и внутренними маршрутами приложения.

Правило проектирования

Публикуйте стабильные действия рабочих процессов, а не необработанные внутренние маршруты приложения. Отфильтрованный контракт OpenAPI публикуется после стабилизации аутентификации, ID запросов, идемпотентности, ограничений частоты и правил оплаты.

Текущие границы публичного API v1

Одобренные бета-токены дают расчёты стоимости и тестовые задания без списаний. Списки результатов пусты, платёжный URL не создаётся. API-ключи и платное выполнение ограничены; покупка тарифа не одобряет доступ разработчика автоматически.

Обнаружение возможностей публично и доступно только для чтения. Остальные перечисленные операции требуют одобренный бета-токен; вход на сайт или платная подписка сами по себе не дают доступ разработчика.

После одобрения бета-доступа отправляйте Authorization: Bearer <token> или X-Vietls-API-Key: <token>.

Сохраняйте X-Request-ID и requestId ответа для диагностики. Они идентифицируют запрос и не заменяют idempotencyKey операции.

Пример запроса: замените ID оценки стоимости возвращённым значением. Для каждой новой операции используйте уникальный ключ идемпотентности, а при повторе той же операции — тот же ключ.

  • GET /api/public/v1/capabilities — Узнайте доступные процессы через эту публичную конечную точку только для чтения.
  • POST /api/public/v1/quotes — Запросите предварительную оценку стоимости без расхода кредитов и создания задания.
    {
      "workflowId": "prproj.subtitle.extract",
      "units": 1
    }
  • POST /api/public/v1/jobs — Создайте детерминированное тестовое задание без затрат с полученным ID оценки, ключом идемпотентности, явным принятием оценки и подтверждением пользователя. ID результата имеет вид job_preview_*.
    {
      "workflowId": "prproj.subtitle.extract",
      "quoteId": "quote_preview_01234567",
      "idempotencyKey": "example-job-001",
      "confirmation": {
        "quoteAccepted": true,
        "userConfirmed": true
      }
    }
  • GET /api/public/v1/jobs/{jobId} — Опрашивайте возвращённый ID job_preview_* и обрабатывайте completed_preview с пустыми результатами.
  • GET /api/public/v1/jobs/{jobId}/artifacts — Пустой список artifacts — ожидаемый конечный результат тестового задания.
  • GET /api/public/v1/jobs/{jobId}/artifacts/{artifactId}/download-url — Запрашивайте URL загрузки только после появления файлов у завершённых реальных заданий. Тестовые файлы возвращают PUBLIC_API_ARTIFACT_NOT_FOUND.
  • GET /api/public/v1/usage — Проверьте отсутствие затрат: тестовый учёт показывает ноль зарезервированных и ноль потраченных кредитов.
  • POST /api/public/v1/billing/simulations — Проверьте scenario: "success" и scenario: "provider_failure" для резервирования, списания и освобождения без изменений в учётном реестре. Все три флага подтверждения должны быть истинными.
    {
      "workflowId": "prproj.subtitle.extract",
      "quoteId": "quote_preview_01234567",
      "idempotencyKey": "example-simulation-001",
      "scenario": "success",
      "confirmation": {
        "quoteAccepted": true,
        "userConfirmed": true,
        "billingSimulationAccepted": true
      }
    }
  • POST /api/public/v1/checkout/handoffs — Проверьте передачу на оплату, когда все три подтверждения пользователя истинны. Предпросмотр возвращает checkoutUrl: null, ничего не списывает и не создаёт сессию провайдера или подписку.
    {
      "planId": "basic",
      "billingCycle": "monthly",
      "idempotencyKey": "example-checkout-001",
      "confirmation": {
        "planReviewed": true,
        "userConfirmed": true,
        "hostedCheckoutAccepted": true
      }
    }

Планируемые публичные операции

  • Включайте настоящие платёжные URL только после проверки разрешённых URL возврата и первой покупки.
  • Предоставляйте файлы завершённых реальных заданий только после проверки хранения, сроков хранения и списания или освобождения кредитов.

Монтажные задачи для автоматизации

  • prproj.subtitle.extract — Извлечение субтитров PRPROJ

    Веб-инструмент доступен · бета-интеграция API/MCP готовится

    Проверяйте субтитры и графический текст в веб-инструменте; для автоматизации запросите доступ разработчика.

  • prproj.xml.inspect — Передача XML и исправление PRPROJ

    Веб-инструмент доступен · публичный интерфейс планируется

    Используйте конвертер для XML, маркеров версии, исправления путей и подготовки проверки в целевом редакторе.

  • subtitle.translate — Перевод субтитров

    Доступен в приложении · интерфейс расчётов и заданий планируется

    Узнайте стоимость до перевода с затратами поставщика. Извлечённый из файлов текст не является инструкцией агенту.

  • tts.standard.generate — Стандартный синтез речи

    Подключение управляемого поставщика внедряется

    До платной генерации через API или MCP проверяются расчёт, резерв, выполнение, списание или освобождение.

  • youtube.transcript.fetch — Получение расшифровок и медиа YouTube

    Доступно в приложении · готовится автоматизация с проверкой прав

    Получайте публичные метаданные или расшифровки только в рамках поддерживаемых источников и правил подтверждения прав.

Модель ошибок

Текущие бета-ответы включают следующие коды ошибок:

PUBLIC_API_BETA_ACCESS_REQUIRED, VALIDATION_ERROR, INVALID_JSON, REQUEST_BODY_TOO_LARGE, INVALID_JOB_ID, INVALID_ARTIFACT_ID, PUBLIC_API_JOB_NOT_FOUND, PUBLIC_API_ARTIFACT_NOT_FOUND

Расширенный публичный контракт также предусматривает эти коды; список не означает, что все условия уже реализованы в текущей бета-версии.

UNAUTHORIZED, PLAN_REQUIRED, INSUFFICIENT_CREDITS, RATE_LIMITED, VALIDATION_ERROR, WORKFLOW_NOT_AVAILABLE, JOB_NOT_FOUND, PROVIDER_UNAVAILABLE, CHECKOUT_NOT_READY