Где находится спецификация
Спецификация эндпоинтов генерируется в реальном времени из каталога API. Используйте эти файлы вместо копирования списков эндпоинтов из статей:
- Компактный индекс для AI-клиентов:
https://api.paperoffice.ai/latest/docs/llms.txt - Полная справка:
https://api.paperoffice.ai/latest/docs/llms-full.txt - OpenAPI 3.1:
https://api.paperoffice.ai/latest/docs/openapi.json - Навык агента:
https://api.paperoffice.ai/latest/docs/skill.md - Коллекция Postman:
https://api.paperoffice.ai/latest/docs/postman
Маршруты документации являются общедоступными и не требуют токена. Импортируйте URL Postman в Postman, VS Code или Bruno и обновляйте его при изменении релиза документации. Базовый адрес производства: https://api.paperoffice.ai/latest; используйте /dev только для разработки.
Быстрый старт с AI-ассистентом по кодированию: передайте ему адрес файла llms-full.txt и опишите необходимую функцию, например, функцию, которая отправляет изображение и возвращает распознанный текст.
Аутентификация и типы токенов
Большинство эндпоинтов продукта требуют bearer-токен в заголовке Authorization. Вы создаете токены в приложении PaperOffice в разделе Аккаунт → API.
- Системный ключ (po_sk_): интеграция сервер-сервер с полным доступом к API. Никогда не используйте его в браузере.
- Токен пользователя (po_ut_): область действия одного пользователя, например для MCP. Права следуют за пользователем и лицензией.
- Групповой токен (po_gt_): наследует права и белый список рабочих пространств группы пользователей.
- Публикуемый ключ (po_pk_): для использования в браузере. Каждый запрос требует источника (origin), указанного владельцем ключа; общий лимит бюджета ключа ограничивает потребление; удаление, администрирование аккаунта, управление ключами и изменения платежей остаются заблокированными. Использование для MCP запрещено.
Без токена доступны только инфраструктурные эндпоинты, такие как спецификация, проверка состояния и тест подключения. Запрос к продукту без токена получает ответ HTTP 403 с кодом TIER_RESTRICTED, а не HTTP 401.
Задания: ожидание, опрос и результаты
Обработка выполняется в виде заданий. Пути заданий используют шаблон handler___command с тремя подчеркиваниями, например POST /job/add/paperoffice_aiocr___generate для распознавания текста. Точечная нотация отклоняется с ошибкой JOB_CONFIG_INVALID.
- По умолчанию запрос удерживает соединение в течение некоторого времени. Если задание завершается вовремя, вы получаете результат напрямую. В противном случае вы получаете HTTP 202 с идентификатором задания и адресом для опроса, и задание продолжает выполняться.
- HTTP 202 — это успех, а не ошибка. Опросите
GET /job/get/{job_id}каждые 5–10 секунд до тех пор, пока статус не станет completed. Результат затем находится в job_result. - С client_wait=false вы получаете идентификатор задания немедленно и начинаете опрос с самого начала.
- Все ответы имеют формат JSON. Клиенты должны читать стабильное поле кода, а не локализованный текст сообщения.
В приложении в разделе Аккаунт → API → Очередь заданий вы видите API-задания в очереди, выполняющиеся и завершенные. Полный список кодов ошибок находится в спецификации; типичные случаи: отсутствующие или недействительные параметры (400), отсутствующий или недействительный токен (401), недостаточно Credits (402), запрещенное действие (403) и слишком много запросов (429, уважайте Retry-After).
Начальный SLA: когда начинается задание
Необязательное поле processing_lane управляет тем, когда задание начинается в очереди, а не когда оно завершается. client_wait управляет тем, ожидает ли соединение результата; эти два поля независимы.
Без processing_lane применяется значение по умолчанию рабочего пространства, иначе — best effort. Каждый план включает best effort без дополнительной платы. Более быстрые полосы запуска являются опциональными и стоят дороже. Текущие полосы и их цены доступны в реальном времени через список цен API; подробности находятся в документации API.
Вебхуки
Эндпоинты вебхуков получают события заданий и аккаунтов, например job.completed, job.failed, job.progress и события для документов, рабочих пространств и задач. Уведомления об аккаунтах, такие как пустой кошелек или отозванный ключ, не являются событиями вебхуков.
- Пейлоды подписываются с помощью HMAC-SHA256 в заголовке X-Paperoffice-Signature. Вычислите подпись для необработанного тела запроса, используя свой секретный ключ вебхука, и отклоните запрос, если он не совпадает.
- Вебхуки регистрируются, просматриваются, обновляются, тестируются и удаляются через API.
Биллинг и использование
Вызовы API потребляют Credits из общего пула организации, того же пула, что и приложение. Некоторые запросы статуса и здоровья не тарифицируются; подробности приведены в документации API. Вызовы, отклоненные из-за недействительных входных данных, также тарифицируются; вызовы, ограниченные частотой запросов (rate-limited), не тарифицируются.
Вы видите вызовы с их Credits в разделе API и разработка → Использование API: журнал в реальном времени показывает каждый запрос, история показывает использование по дате, обработчику и действию. Когда Credits исчерпаны, вызовы отклоняются до пополнения баланса или срабатывания автопополнения. Лимиты частоты запросов зависят от вашего тарифного плана; текущие лимиты и заголовки ответов описаны в документации API. Подробнее о Credits: Биллинг и Credits в PaperOffice AI.
MCP: подключение ИИ-ассистентов
MCP подключает ИИ-ассистентов, таких как Claude, ChatGPT, Grok и Cursor, напрямую к PaperOffice. Аутентификация осуществляется по OAuth 2.1 или с помощью токена пользователя или группы; системные ключи и публикуемые ключи для MCP заблокированы. Хост производства: https://mcp.paperoffice.ai, с профилями, такими как /claude, /chatgpt, /grok, /cursor и /dms. Настройка, разрешения и поток данных: Использование PaperOffice с Claude, ChatGPT, Grok и Cursor.
Часто задаваемые вопросы
- Где найти все конечные точки? В файлах llms.txt, llms-full.txt и OpenAPI. Они генерируются в реальном времени.
- Какой токен должен использовать мой сервер? Системный ключ, никогда не в браузере. Для браузера используйте публикуемый ключ с указанием источника (origin) и бюджета.
- Является ли HTTP 202 ошибкой? Нет. Задача все еще выполняется; опрашивайте результат.
- Стоят ли более быстрые полосы запуска дороже? Да. Режим Best effort не имеет дополнительной наценки; текущие цены указаны в прайс-листе API.
- Тарифицируются ли отклоненные вызовы? Вызовы, отклоненные из-за недействительных входных данных, тарифицируются; вызовы, ограниченные частотой запросов (rate-limited), не тарифицируются.