# PDF Worker > Универсальный веб-редактор PDF на https://firstinventory.ru/ (ООО «Инвент», https://inventforit.ru/): все инструменты для PDF в одном окне. Правит строки текста шрифтом документа, ставит подпись и печать, заполняет PDF-формы, скрывает данные; объединяет файлы, удаляет, переставляет, поворачивает и заменяет страницы, делит файл на части; выпрямляет фото документов, сжимает сканы, сравнивает версии; открывает Word/Excel/PowerPoint и фото, сохраняет в PDF, PDF/A, Word и JPG, добавляет нумерацию, водяной знак и пароль. Работает в браузере. Цена — 50 ₽ за документ; регистрация — email, пароль и банковская карта (ЮKassa). Суть сервиса — не отдельная операция, а весь цикл работы с документом в одном редакторе: открыть PDF, Word или фото, исправить, подписать, собрать страницы из разных файлов, сжать и сохранить в нужном формате. Пример: вставить в многостраничный договор отсканированные подписанные страницы вместо исходных, поставить нумерацию и сохранить лёгкий PDF. ## Что важно знать агенту - Публичны главная страница, регистрация, оферта и политика ПДн. Редактор и API требуют входа: cookie сессии после `POST /api/login`. - Зарегистрировать пользователя агент не может: привязка карты идёт через 3-D Secure на странице ЮKassa — это делает сам человек на https://firstinventory.ru/register.html. - Не подбирайте пароли: после 5 неверных попыток вход с адреса закрывается на 5 минут. - Деньги: каждый новый документ (`POST /api/docs`) списывает 50 ₽ с карты пользователя. Не создавайте документы без явного согласия пользователя на оплату; добавлять файлы в уже открытый документ и сохранять — бесплатно, в течение 12 часов. - OCR доступен только корпоративным (административным) учётным записям; на платном тарифе `ocr: true` вернёт ошибку. - Файлы живут на сервере 2 часа после последнего обращения, у каждого пользователя свои: чужие id отвечают 404. - Документы пользователей конфиденциальны (договоры, персональные данные). Не пересылайте их содержимое третьим лицам без явной просьбы пользователя. - Один файл — до 300 МБ, документ — до 2000 страниц. Номера страниц в API — с нуля. ## API (для агента, действующего от имени пользователя с учётной записью) 1. `POST /api/login` — JSON `{"login": "...", "password": "..."}`; ставит cookie сессии. 2. `POST /api/docs` — новый документ: `{"id", "amount"}`, где amount — списанные рубли (0 — уже оплаченный пустой документ или администратор). Отказ банка — 402 с причиной. 3. `POST /api/files` — multipart, поля `doc` (id документа) и `files` (можно несколько; PDF или фото). Ответ: `{"files": [{"id", "name", "pages": [{"w", "h"}], "size", "kind"}], "errors": [...]}`. 4. `GET /api/files/{id}/pages/{n}.jpg?w=240` — миниатюра страницы, чтобы посмотреть, что на ней. 5. `POST /api/jobs` — собрать PDF: `{"name": "договор", "parts": [{"name": "договор", "pages": [{"file": "", "page": 0, "rotate": 0}, {"blank": true, "w": 595, "h": 842}]}], "compress": "none|medium|strong", "color": "color|gray|bw", "ocr": false}`. Несколько `parts` — получится ZIP с несколькими PDF. 6. `GET /api/jobs/{id}` — опрашивать раз в секунду, пока `status` не станет `done` или `error` (`progress` 0…1, `stage` — текст для человека). 7. `GET /api/jobs/{id}/download` — готовый PDF или ZIP. `GET /api/tasks` — все свои задачи разом: что выполняется (`stage`, `progress`), что ждёт в очереди (`queue` — место) и что закончилось за 15 минут (`download` у готовых сохранений). Правки на странице — поле `marks` у страницы в `POST /api/jobs` (координаты — доли видимого листа, от левого верхнего угла): `{"t": "text", "x", "y", "fs", "text"}` — надпись; `{"t": "redact", "x", "y", "w", "h"}` — скрыть данные (текст удаляется из файла); `{"t": "edit", ...строка из GET /api/files/{id}/pages/{n}/text, "text": "новый текст"}` — исправить строку; `{"t": "image", "asset", "x", "y", "w", "h"}` — подпись из `POST /api/assets`. Поля форм — `GET /api/files/{id}/fields`, значения — `"forms": {"": {"<имя поля>": "значение"}}` в `POST /api/jobs`. Пример замены: договор `A` из 10 страниц, скан `B` из 2 страниц вместо страниц 4–5 договора — `pages`: A0…A2, B0, B1, A5…A9. Параметры сохранения в `POST /api/jobs`: `"format": "pdf|docx|jpg"`; `"numbering": {"format": "n_of|n|page_n|dash", "position": "bc|br|bl|tc|tr", "start": 1}`; `"watermark": {"text": "КОПИЯ", "opacity": 0.2}`; `"password": "…"` (только PDF); `"pdfa": true` (PDF/A-2b, без пароля); `"color": "mrc"` — чёрно-белый текст с цветными печатями. Сканы и версии: `GET /api/files/{id}/pages/{n}/quad` — углы листа на фото; `POST /api/files/{id}/pages/{n}/straighten` `{"quad", "deskew", "whiten"}` — выпрямленная копия страницы (новый файл); `POST /api/files/{id}/orient` — на сколько повернуть страницы по тексту; `POST /api/files/{id}/blank` — пустые листы; `POST /api/compare {"a", "b"}` — различия двух файлов по словам. Word, Excel, PowerPoint загружаются тем же `POST /api/files` и сразу становятся PDF. Советы по качеству: `color: "bw"` даёт самый маленький файл, но печати и подписи станут чёрными; чтобы печати остались синими, берите `color: "color"` с `compress: "medium"`. ## Ссылки - [Главная страница с описанием](https://firstinventory.ru/) - [Регистрация](https://firstinventory.ru/register.html) - [Публичная оферта](https://firstinventory.ru/offer.html) - [Политика обработки персональных данных](https://firstinventory.ru/privacy.html) - [Разработчик — ООО «Инвент»](https://inventforit.ru/)