Перейти к содержимому
Обзор Обзор Новости Новости
Поделиться

Publishable Keys

Безопасные для браузера вызовы API. Без собственного бэкенда.

Publishable Key (po_pk_) может находиться во фронтенде: ограничено областью, привязано к источнику и лимитировано бюджетом.

Для артефактов Claude, Canvas ChatGPT, Grok и любого собственного веб-приложения.

Собственный префикс po_pk_ По умолчанию привязан к Origin Можно отозвать в любое время

Прямо из браузера

От AI-Canvas напрямую к вызову API

Вы создаете приложение для преобразования PDF в текст в Claude, ChatGPT или Grok. Без бэкенда вызов API оставался невозможным: CORS блокирует запрос, секретный ключ оказался бы виден в исходном коде, а открытый ключ нагружает ваш аккаунт. Именно эту проблему решают Publishable Keys.

Работает в Claude ArtifactsChatGPT CanvasGrokЛюбое браузерное приложение

Вставить в Claude, ChatGPT или Grok

Промпт, который превращает любую AI-Canvas в настоящую демонстрацию на базе API — без бэкенда.

ИИ-Холст Промпт
Прочитайте этот документ API:
https://api.paperoffice.ai/latest/docs/llms-full.txt Создайте одностраничное React-приложение (Claude Artifact / ChatGPT Canvas / Grok):
Пользователь загружает PDF, приложение вызывает
/job/add/paperoffice_aiocr___generate напрямую из браузера
и отображает извлеченный текст. Аутентификация: Bearer po_pk_MY_PUBLISHABLE_KEY (запросите у пользователя ключ).
Используйте processing_lane=instant для синхронных результатов. Заголовок Origin устанавливается браузером.

Выберите пресет, создайте ключ, вставьте его.

Дашборд предоставляет пресеты для областей и бюджета. Источники остаются пустыми — введите заголовок Origin из инструментов разработчика браузера, затем скопируйте ключ в свой промпт.

Создать ключ
JavaScript
const form = new FormData();form.append("file_1", fileInput.files[0]);form.append("processing_lane", "instant");form.append("client_wait", "true");const response = await fetch("https://api.paperoffice.ai/latest/job/add/paperoffice_aiocr___generate", {  method: "POST",  headers: { Authorization: "Bearer po_pk_YOUR_PUBLISHABLE_KEY" },  body: form,});console.log(await response.json());

Первый вызов

fetch из браузера, Origin устанавливается браузером

Запрос отправляется на POST /latest/job/add/{pipeline} — тот же конечный пункт, что и с секретным ключом. Новыми являются только тип ключа и заголовок Origin, который браузер отправляет автоматически.

  • Origin берется от браузера

    fetch сам устанавливает заголовок Origin. Скрипты вне браузера (cURL, Node) должны явно его отправлять — иначе API ответит с кодом 403 ORIGIN_HEADER_REQUIRED.

  • Результат встроенный

    С параметрами processing_lane=instant и client_wait=true API удерживает соединение и возвращает результат непосредственно в ответе.

  • Понятные коды ошибок

    402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — каждый лимит сообщает о себе своим собственным кодом.

Матрица безопасности

Шесть контролей, все принудительно на стороне сервера

Ограничено областью, привязано к источнику, лимитировано бюджетом, отменяемо в любое время. Каждый контроль обеспечивается на стороне сервера — поэтому ключ может находиться во фронтенд-коде.

  • Ограничено областью действия

    Ключи доступны только для тех групп эндпоинтов, которые вы явно разрешили: ocr:read, llm:generate, translate:text и других. Запросы вне разрешенной области возвращают HTTP 403.

  • Привязано к origin

    Каждый запрос должен содержать заголовок Origin, соответствующий списку разрешенных значений ключа (точный хост или подстановочный знак для поддомена). Если он не совпадает, возвращается HTTP 403 с кодом ошибки API.

  • Нет дополнительного лимита минут

    Для po_pk_ нет собственного минутного лимита. Действуют обычные ограничения скорости токенов аккаунта; расход лимитируется пожизненным бюджетом.

  • Бюджет ограничен

    Каждый ключ имеет лимит бюджета на весь срок действия. Если он исчерпан, API возвращает HTTP 402 BUDGET_EXHAUSTED — потребление останавливается немедленно, а не только при выставлении счета.

  • Отзыв в любое время

    Ключи можно отозвать в личном кабинете в любой момент. Отозванный ключ больше не принимается API.

  • Жесткая блокировка

    HTTP DELETE, вход в аккаунт, управление ключами, OAuth, администрирование партнеров, изменение платежей и взлом пароля остаются навсегда заблокированными для каждого po_pk_. Документированные продукты API — включая удаление через POST, вебхуки, чтение биллинга и CRM — разрешены.

Иерархия ключей

Три типа ключей, четкое распределение ответственности

Secret Key для сервера, Publishable Key для браузера — плюс пользовательский токен для доступа с учетом потребителя и ограничениями по частоте запросов.

Префикс Тип Сценарий использования Безопасность браузера Область по умолчанию
po_sk_ Секретный ключ Сервер-к-серверу, полный доступ API Нет Все конечные точки
po_ut_ User Token Пользовательский уровень, ограничение по уровню Нет На основе уровня
po_pk_ Publishable Key Браузер / AI-Canvas (Claude, ChatGPT, Grok) Да Список областей

Аутентификация и ключи

Три пресета

Один клик. Один ключ. Одна цель.

Каждый пресет настроен под конкретный сценарий использования — безопасные значения по умолчанию, тщательно подобранные области видимости (scopes), реалистичные бюджеты. Всё можно изменить в любое время через панель управления.

  • DEFAULT Безопасное чтение

    Безопасные права по умолчанию для простых демо и внутренних инструментов: OCR, LLM, Translate, Documents, Search.

    Области видимости (scopes)

    ocr:readllm:generatetranslate:textdocuments:uploaddocuments:readsearch:query
    Начать с этим пресетом
  • WIDGET Публичный веб-сайт

    Для контактных форм, чат-виджетов и кнопок бронирования на собственном корпоративном сайте.

    Области видимости (scopes)

    knowledge:readwidget:chatwidget:bookingwidget:formswidget:contactwidget:leadwidget:fingerprint
    Начать с этим пресетом

Первый вызов API

Готовы к первому вызову из браузера?

Создайте ключ, откройте llms-full.txt, вставьте промпт — ваше приложение вызывает API напрямую из Claude, ChatGPT или Grok.

Собственный префикс Без бэкенда Отзываемый в любое время
Видео

Publishable keys в действии

Посмотрите, как работают publishable keys PaperOffice на практике — в видео.

Publishable keys в действии

Часто задаваемые вопросы

Всё важное в одном месте

В чём разница между po_pk_ и po_sk_?

po_sk_ (Secret Key) предназначен для интеграции сервер-к-серверу — полный доступ к API, никогда не включайте его в браузерный код. po_pk_ (Publishable Key) создан для кода в браузере: ограничен областью действия, привязан к origin, с ограничением бюджета. Тот же API, но другой профиль безопасности.

Почему бы просто не использовать обратный прокси из собственного бэкенда?

Это классический путь — но он по-прежнему требует наличия бэкенда. AI-Artifacts (Claude, ChatGPT, Grok) предназначены для работы без собственного бэкенда. Publishable Keys делают это возможным, не раскрывая ваш Secret Key: ограничения применяются на стороне сервера.

Работает ли это в Artifacts Claude, несмотря на их CORS-песочницу?

Да. Вызов происходит напрямую из браузера, заголовок Origin устанавливается самим браузером. PaperOffice не предоставляет список разрешенных поставщиков; источник вводится при создании ключа из инструментов разработчика.

Что произойдет, если мой po_pk_ станет публично видимым?

Ущерб останется ограниченным: блокировка по Origin предотвращает использование на сторонних доменах, лимит бюджета останавливает расходование средств, лимит частоты запросов замедляет автоматизированный доступ. Отозвите ключ в аккаунте — после этого API больше не примет его.

Могу ли я добавить свой собственный домен в список разрешенных Origins?

Да. При создании ключа вы можете добавить любой Origin в Allow-List — как точный хост или как подстановочный знак для поддомена. Пресет WIDGET создан именно для этого: зарегистрируйте свой собственный домен и внедрите виджеты чата, бронирования или контактов без бэкенда.

Как установить бюджет на каждый ключ?

При создании выберите пожизненный лимит; пресеты имеют свои предустановки. Когда лимит исчерпан, API возвращает HTTP 402 BUDGET_EXHAUSTED. Вы можете изменить это значение в аккаунте в любое время.

Нужен ли po_pk_ собственный тариф?

Нет. Publishable Key — это дополнительный защитный слой вокруг вашего существующего аккаунта: он ограничивает области, источники и бюджет. Какой план подходит для вашей конфигурации, показано в таблице цен.

Какие эндпоинты заблокированы для po_pk_?

HTTP DELETE, а также вход в аккаунт, администрирование пользователей, управление ключами, OAuth, администрирование партнеров, Stripe Checkout и взлом пароля жестко заблокированы. Документированные продукты API разрешены, включая удаление через POST, вебхуки, чтение биллинга, импорт и CRM. Удаление Workspace, очистка корзины и снятие Legal Hold остаются только через интерфейс (403 UI_ONLY_ENDPOINT).

Где вы хотите протестировать PaperOffice?

Компьютер и смартфон связаны: рабочее пространство на компьютере, захват на телефоне.

Ваша пробная версия готова

Где вы хотите начать?

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

app.paperoffice.ai

Начать на компьютере

Мы отправим вашу личную ссылку для доступа на ваш адрес электронной почты.

Зарегистрироваться бесплатно Открыть приложение Приложение PaperOffice Полный продукт: веб, компьютер и мобильные устройства. Захватывайте, организуйте, ищите документы и работайте с ними вместе с командой. Требуется бесплатная учётная запись Открыть Playground Playground Выбранные функции сразу — с ограниченным демо-ключом API. С ограниченным демо-ключом API