Къде се намира спецификацията
Спецификацията на крайните точки (endpoint) се генерира динамично от каталога на 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 - Навык за агент (Agent skill):
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.
Без токен са достъпни само инфраструктурните крайни точки като спецификацията, проверката на здравето (health check) и теста за свързаност. Продуктова заявка без токен получава отговор HTTP 403 с кода TIER_RESTRICTED, а не HTTP 401.
Задачи: изчакване, поддържане на връзка (polling) и резултати
Обработката се изпълнява като задачи. Пътят на задачите използва шаблона handler___command с три подчертавки, например POST /job/add/paperoffice_aiocr___generate за разпознаване на текст. Точковата нотация е отхвърлена с JOB_CONFIG_INVALID.
- По подразбиране заявката задържа връзката за известно време. Ако задачата приключи навреме, получавате резултата директно. В противен случай получавате HTTP 202 с ID на задача и адрес за поддържане на връзка (poll address), а задачата продължава да работи.
- HTTP 202 е успех, а не грешка. Извършвайте poll
GET /job/get/{job_id}на всеки 5 до 10 секунди, докато статусът стане completed. Резултатът се намира в job_result. - С client_wait=false получавате ID на задачата веднага и започвате poll от самото начало.
- Всички отговори са JSON. Клиентите трябва да четат стабилното поле code, а не локализираното текстово съобщение.
В приложението под Акаунт → 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. Заявките, които са отхвърлени поради невалидни входни данни, също се таксуват; тези, ограничени от честотата, не се таксуват.
Виждате извикванията с техните Credits под API и разработка → API използване: живият дневник показва всяка заявка, историята показва използването по дата, обработчик и действие. Когато Credits свършат, извикванията се отхвърлят до зареждането на баланса или до влизането в сила на автоматичното допълване. Ограниченията за честота зависят от вашия план; текущите граници и заглавките в отговорите са описани в документацията на API. Повече за Credits: Таксуване и Credits в PaperOffice AI.
MCP: свързване на AI асистенти
MCP свързва AI асистенти като 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 файла. Те се генерират в реално време.
- Какъв токен трябва да използва сървърът ми? Системен ключ, никога в браузър. За браузър използвайте публикуем ключ с произход и бюджет.
- Дали HTTP 202 е грешка? Не. Работата все още върви; правете заявки за резултата.
- Дали по-бързите стартови ленти струват повече? Да. Най-добрите усилия нямат допълнително таксуване; текущите цени са в списъка с цени на API.
- Таксуват ли се отхвърлените повиквания? Повикванията, отхвърлени поради невалидни входни данни, се таксуват; тези, ограничени от честота, не се таксуват.