po_sk_ Сервер к серверу Секретный ключ
- Полный доступ в рамках аккаунта
- Никогда не передавать в браузерный код
- Заголовок Origin не требуется
- Заблокировано для MCP
Аутентификация и ключи
Каждая конечная точка продукта PaperOffice-API ожидает заголовок Authorization: Bearer. Без OAuth-потока, без обновления.
Два типа токенов, десять областей прав, документированные лимиты частоты запросов.
curl -X POST "https://api.paperoffice.ai/latest/job/add/workflow" \ -H "Authorization: Bearer po_ut_YOUR_API_KEY" \ -F "[email protected]" \ -F "idp_collection=invoice" \ -F "model=basic-pro-max" import requestsresponse = requests.post( "https://api.paperoffice.ai/latest/job/add/workflow", headers={"Authorization": "Bearer po_ut_YOUR_API_KEY"}, files={"file_1": open("invoice.pdf", "rb")}, data={"idp_collection": "invoice", "model": "basic-pro-max"},)print(response.json()) const form = new FormData();form.append("file_1", new Blob([await readFile("invoice.pdf")]), "invoice.pdf");form.append("idp_collection", "invoice");form.append("model", "basic-pro-max");const response = await fetch("https://api.paperoffice.ai/latest/job/add/workflow", { method: "POST", headers: { Authorization: "Bearer po_ut_YOUR_API_KEY" }, body: form,});console.log(await response.json()); Первый вызов
Путь к /latest/job/add/ — это имя очереди задания: обычно в формате handler___command (например, paperoffice_aiocr___generate), для структурированного IDP — собственный конвейер workflow.
Authorization: Bearer po_ut_… — больше ничего не требуется для конечной точки продукта. po_sk_ и po_ut_ не отправляют заголовок Origin.
handler___command с тремя подчеркиваниями; workflow является исключением с собственным slug. Точечная нотация отвечает на API с HTTP 400 JOB_CONFIG_INVALID.
client_wait по умолчанию имеет значение true: API поддерживает соединение и возвращает результат inline. Если временное окно недостаточно, возвращается HTTP 202 с job_id и poll_url для GET /latest/job/get/{job_id}.
Для idp_collection=invoice рекомендуется модель basic-pro-max: OCR-first ограничивает печатные коллекции с позициями в любом случае до basic-pro-max; отправленная модель=premium возвращается как model: basic-pro-max.
Типы токенов
Оба должны быть на сервере. Они создаются, ротация и отзыв происходят в приложении в разделе Аккаунт → API.
po_sk_ Сервер к серверу po_ut_ Относительно пользователя Вызовы напрямую из браузера не проходят через эти два токена, а используют Publishable Key po_pk_ — привязанный к источнику, с ограничением бюджета и частоты запросов. Посмотреть Publishable Keys
Разрешения
Токен пользователя содержит ровно те области, которые вы указали при его создании. Если область отсутствует, API вернет HTTP 403.
документы Загрузка, скачивание, обработка
рабочие_пространства Управление папками и структурой
ai_jobs OCR, IDP, извлечение данных
биллинг Чтение использования и баланса счета
пользователи Управление членами команды
вебхуки Получение событий
база_знаний База знаний и FAQ
агенты Настройка агентов IDP
рабочие процессы Создание автоматизаций
соответствие Аудит, GDPR, архивирование
Лимиты скорости
Ограничение применяется на каждый токен; без Bearer — на каждый IP-адрес. Приведенные значения являются документально подтвержденными минимальными лимитами, действующими в каждом тарифном плане.
Заголовки RateLimit-* и X-RateLimit-* каждого ответа показывают, сколько запросов еще доступно в текущем окне.
Ответ API содержит статус RATE_LIMIT_EXCEEDED. Повторите запрос после времени, указанного в заголовке Retry-After.
Платные тарифы находятся выше этих минимальных значений. Какой тариф какой объем охватывает, указано на странице цен.
Безопасность
Шесть механизмов, работающих в эксплуатации — каждый с проверяемым кодом состояния или местом в приложении.
Ключи создаются, отображаются, вращаются и отзываются в приложении по адресу Аккаунт → API. Отозванный токен отвечает HTTP 401 TOKEN_NOT_FOUND.
Истекшие или ошибочные токены возвращаются как HTTP 401 INVALID_TOKEN. Publishable Keys истекают не позднее чем через 365 дней.
Лимиты рассчитываются на каждый токен, а не на аккаунт. Скомпрометированный ключ не влияет на всю систему.
Publishable Keys требуют Origin из Allowlist при каждом запросе; иначе API отвечает 403 ORIGIN_HEADER_REQUIRED или DOMAIN_NOT_ALLOWED.
Каждый оплаченный ответ содержит блок _billing; оценка по каждому вызову осуществляется через GET /latest/billing/usage-detail.
Вход в аккаунт, управление ключами, OAuth, администрирование партнеров, изменение платежей и взлом паролей заблокированы для браузерных ключей. Чтение продукта APIs (включая биллинг) и вебхуки разрешены. Удаление Workspace, очистка корзины и снятие Legal-Hold доступны только в приложении (403 UI_ONLY_ENDPOINT).
Посмотрите, как на практике работает вызов с Bearer-токеном — в видео.
Дополнительно
Страницы, охватывающие работу вокруг аутентификации.
Начать
Ключ создается в приложении в разделе Аккаунт → API. Первый вызов описан пошагово в разделе Первый вызов API.
Эксплуатация и доверие
Договоры, безопасность, поддержка и лимиты — все ссылки в одном месте.
Следующая остановка
Рекомендуемый следующий шаг в воронке разработчика и два подходящих направления.