Карта сайта Обновления
Русский
RUB ₽
НОВОЕ
Claude & ChatGPT — Supercharged.
Все документы · 409+ ИИ-инструментов · Настройка за 30 сек
Claude· ChatGPT· Cursor· Gemini· +50
Подключить сейчас
Платформа
50+ ИИ модулей и инструментов
Решения
Отрасли, процессы, риски
Разработчик
API, SDK, документация
Ресурсы
Обучение, блог, поддержка
Компания
Команда, партнёры, карьера
Цены
Платформа
Document + Automation AI
ИЗВЛЕЧЕНИЕ
AI-IDP IDP Agents AI-OCR Human-in-the-Loop
ОБРАБОТКА
PDF AI Анонимайзер PDF Разделение PDF AI Storage Mounts
ОРГАНИЗАЦИЯ
DMS / Headless DMS Workspaces Классификация PaperOffice Sign Мобильное приложение
АВТОМАТИЗАЦИЯ
Workflow Designer Правила и триггеры Connectors ИИ-Оркестратор
Analytics + Relations AI
Визуализация
Knowledge Graph Панель управления Временная шкала
Анализ
Гео-карта Центр аудита Финансовая аналитика
Идеи
Контакты и отношения Сущности Чат по документам
Agent + Media AI
Агенты
Чат-агент Телефонный агент Агент заявок Пользовательские агенты
Язык
Генератор голоса (TTS) Транскрипция голоса (STT) Перевод
Медиа
Генератор изображений Распознавание изображений Аудит-безопасная доставка электронной почты
Knowledge + HelpDesk AI
Знания
HelpDesk AI База знаний Управление FAQ
Поддержка
Интеллектуальный поиск Автоматические ответы Аналитика поддержки
Контекст и время
Calendar AI Типы встреч Публичное бронирование
Security & Data AI
Безопасность
Отпечаток устройства Детектор анонимности Детектор поддельных электронных писем Document Integrity Check
Местоположение
IP2Location Геокодирование API погоды Тайлы карт
Business
Обмен валют Валидатор НДС
Решения
По отрасли
Банки и финансы Страхование Налоговые консультанты и юридические фирмы Промышленность и производство Торговля и логистика Энергетика и коммунальные услуги Здравоохранение и фармацевтика Недвижимость Государственный сектор
По проблеме
Хаос документов Информация не найдена Потеря знаний Ручной ввод данных Процессы слишком медленные Масштабирование невозможно Слишком много ошибок Риски соответствия требованиям Перегрузка поддержки
По процессу
Обработка счетов-фактур Оцифровка почтового отделения Онбординг Управление контрактами HR-процессы Document Integrity Check Отчетность и аналитика Архивирование и соответствие требованиям Обслуживание клиентов Контроль качества
По риску
Мошенничество со счетами-фактурами Поддельные документы Document Integrity Check Мошенничество с личными данными Интеллект по мошенничеству с НДС Ошибки в расчетах в счетах-фактурах Манипулирование данными Мошенничество с платежами Нарушения соответствия требованиям Конфиденциальность / GDPR Пробелы в аудите
По типу документа
Счета-фактуры и квитанции Банковские выписки Налоговые формы Контракты Удостоверения личности и документы Формы и заявки Рукописные документы Технические документы Медицинские документы
ИИ Рецепты

Копируй. Вставляй. Отправляй. |

15 Production-ready Recipes для реальных задач. От разработчиков для разработчиков. Без лишнего.

15 Рецепты
5 Языков
0 Необходимые SDK

Доверие ведущих компаний по всему миру

Эксклюзивный DMS Партнёр

Единственная официальная DMS

AI-IDP + Bounding Boxes – Показывает, ГДЕ находится значение
AI PDF Split – До 3000 страниц
VISITOR Mode – Тест без регистрации
MCP Protocol – Native IDE интеграция
🚀 Быстрые победы

Продуктивность за секунды

Однострочники и минимальный код — мгновенный copy & paste

Экстрактор счетов + Ограничивающие рамки

BOUNDING BOXES 30s Easy

Извлечение данных счёта С позицией в документе — для UI верификации.

# VISITOR Mode - kein Token nötig!
# AI-IDP Invoice mit Bounding Boxes
curl -X POST "https://api.paperoffice.ai/latest/job" \
  -F "file_1=@invoice.pdf" \
  -F "model=premium" \
  -F "idp_collection=invoice" \
  -F "priority=900"

# Response enthält BOUNDING BOXES!
# → "vendor": {"value": "Acme Corp", "bbox": [x1, y1, x2, y2]}
import requests

# VISITOR Mode - kein Token nötig!
response = requests.post(
    "https://api.paperoffice.ai/latest/job",
    files={"file_1": open("invoice.pdf", "rb")},
    data={
        "model": "premium",
        "idp_collection": "invoice",
        "priority": 900
    }
)

# Bounding Boxes zeigen WO der Wert steht!
result = response.json()
for field, data in result["job_result"]["fields"].items():
    print(f"{field}: {data['value']} @ {data['bbox']}")
// VISITOR Mode - kein Token nötig!
const form = new FormData();
form.append('file_1', fs.createReadStream('invoice.pdf'));
form.append('model', 'premium');
form.append('idp_collection', 'invoice');
form.append('priority', '900');

const response = await fetch('https://api.paperoffice.ai/latest/job', {
  method: 'POST',
  body: form
});

// Bounding Boxes für jedes extrahierte Feld!
const { job_result } = await response.json();
console.log(job_result.fields.vendor); // { value: "Acme", bbox: [...] }

OCR в одну строку

VISITOR MODE 10s Easy

Текст из изображений/PDF в одну строку. VISITOR режим = токен не нужен!

# KEIN TOKEN NÖTIG! VISITOR Mode = kostenlos testen
curl -X POST "https://api.paperoffice.ai/latest/job" \
  -F "file_1=@document.png" \
  -F "ocr_mode=complete" \
  -F "priority=900"

# ocr_mode: complete (+tables), grid (+bbox), text (nur Text)
import requests

# VISITOR Mode - kein Token nötig!
response = requests.post(
    "https://api.paperoffice.ai/latest/job",
    files={"file_1": open("document.png", "rb")},
    data={
        "ocr_mode": "complete",  # oder "grid" für nur Bounding Boxes
        "priority": 900
    }
)

result = response.json()
print(result["job_result"]["text"])
// VISITOR Mode - Zero Signup!
const form = new FormData();
form.append('file_1', fs.createReadStream('document.png'));
form.append('ocr_mode', 'complete'); // oder 'grid' für nur bbox
form.append('priority', '900');

const { job_result } = await fetch(
  'https://api.paperoffice.ai/latest/job',
  { method: 'POST', body: form }
).then(r => r.json());

console.log(job_result.text);

ИИ Разделение PDF (3000 страниц)

3000 SEITEN 60s Easy

Интеллектуальное разбиение объёмных PDF. Автоопределение границ документов.

# VISITOR Mode - kein Token nötig!
# AI PDF Split - bis 3000 Seiten!
curl -X POST "https://api.paperoffice.ai/latest/job" \
  -F "file=@sammel_dokument.pdf" \
  -F "template=pdf_ai_split" \
  -F "naming_instruction=Dokumenttyp_Datum_Absender" \
  -F "locale=de_DE" \
  -F "priority=900"

# → AI erkennt Dokumentgrenzen automatisch!
import requests

# VISITOR Mode - kein Token nötig!
response = requests.post(
    "https://api.paperoffice.ai/latest/job",
    files={"file": open("sammel_dokument.pdf", "rb")},
    data={
        "template": "pdf_ai_split",
        "naming_instruction": "Dokumenttyp_Datum_Absender",
        "locale": "de_DE",
        "priority": 900
    }
)

result = response.json()
for doc in result["job_result"]["documents_created"]:
    print(f"{doc['suggested_filename']}: {doc['page_range']}")
// VISITOR Mode - kein Token nötig!
const form = new FormData();
form.append('file', fs.createReadStream('sammel_dokument.pdf'));
form.append('template', 'pdf_ai_split');
form.append('naming_instruction', 'Dokumenttyp_Datum_Absender');
form.append('locale', 'de_DE');
form.append('priority', '900');

const response = await fetch('https://api.paperoffice.ai/latest/job', {
  method: 'POST',
  body: form
});

// AI erkennt Dokumentgrenzen automatisch
const { job_result } = await response.json();
job_result.documents_created.forEach(doc => {
  console.log(doc.suggested_filename + ': ' + doc.page_range);
});

GDPR Анонимайзер

DSGVO 15s Easy

Автоопределение и редактирование персональных данных. Имена, IBAN, email.

# VISITOR Mode - kein Token nötig!
# DSGVO Anonymisierung - PII Preview
curl -X POST "https://api.paperoffice.ai/latest/job" \
  -F "file=@dokument.pdf" \
  -F "template=document_anonymize_preview" \
  -F "redact_categories=all" \
  -F "priority=900"

# → simplified_boxes mit allen erkannten PII
import requests

# VISITOR Mode - kein Token nötig!
response = requests.post(
    "https://api.paperoffice.ai/latest/job",
    files={"file": open("dokument.pdf", "rb")},
    data={
        "template": "document_anonymize_preview",
        "redact_categories": "all",  # oder: names,addresses,iban
        "whitelist": "PaperOffice",   # Diese NICHT schwärzen
        "priority": 900
    }
)

# Response enthält simplified_boxes mit allen PII
result = response.json()
boxes = result["job_result"]["workflow_output"]["simplified_boxes"]
print(f"Gefunden: {len(boxes)} sensible Elemente")
// VISITOR Mode - kein Token nötig!
const form = new FormData();
form.append('file', fs.createReadStream('dokument.pdf'));
form.append('template', 'document_anonymize_preview');
form.append('redact_categories', 'all');
form.append('whitelist', 'PaperOffice'); // Diese NICHT schwärzen
form.append('priority', '900');

const response = await fetch('https://api.paperoffice.ai/latest/job', {
  method: 'POST',
  body: form
});

const { job_result } = await response.json();
const boxes = job_result.workflow_output.simplified_boxes;
console.log('Gefunden: ' + boxes.length + ' sensible Elemente');

TTS Генератор

VOICE AI 20s Easy

Текст в аудио с нативными голосами. Несколько языков.

# VISITOR Mode - kein Token nötig!
# Text-to-Speech mit neuronalen Stimmen
curl -X POST "https://api.paperoffice.ai/latest/job" \
  -F "text=Hallo, das ist ein Test der Sprachausgabe." \
  -F "voice=Nadja" \
  -F "output_format=mp3" \
  -F "output=url" \
  -F "speed=1.0" \
  -F "priority=999"

# Stimmen: Nadja, Thomas, Anna, Hans (DE) + 100+ mehr
import requests

# VISITOR Mode - kein Token nötig!
response = requests.post(
    "https://api.paperoffice.ai/latest/job",
    data={
        "text": "Hallo, das ist ein Test der Sprachausgabe.",
        "voice": "Nadja",       # Klingt am natürlichsten
        "output_format": "mp3", # oder: wav
        "output": "url",        # oder: base64, inline
        "speed": "1.0",
        "priority": 999         # Sync für TTS
    }
)

result = response.json()
print(f"Audio: {result['job_result']['audio_url']}")
// VISITOR Mode - kein Token nötig!
const form = new FormData();
form.append('text', 'Hallo, das ist ein Test der Sprachausgabe.');
form.append('voice', 'Nadja');
form.append('output_format', 'mp3');
form.append('output', 'url');
form.append('speed', '1.0');
form.append('priority', '999');

const response = await fetch('https://api.paperoffice.ai/latest/job', {
  method: 'POST',
  body: form
});

const { job_result } = await response.json();
console.log('Audio: ' + job_result.audio_url);
🤖 Рецепты ИИ-инструментов

Для Claude, Cursor и др.

Copy-paste промпты, которые реально работают

Claude

Invoice Pipeline с Claude

Prompt
Read this API documentation:
https://api.paperoffice.ai/latest/docs/postman

Create a Python script that:
1. Takes a folder of invoice PDFs
2. Extracts all fields using POST /job with idp_collection=invoice
3. Returns bounding boxes for verification (bbox array)
4. Exports to CSV

Important: Use file_1 for uploads, model=premium.
Handle both sync (priority>=900) and async modes.
Полный Python скрипт с проверкой bounding box
Cursor

MCP Server в Cursor

Prompt
Read this API documentation:
https://api.paperoffice.ai/latest/docs/postman

Help me set up the MCP Server for PaperOffice in Cursor.
I want to use Document AI directly in my IDE.

Show me:
1. How to configure the MCP connection (POST /mcp)
2. Available tools via tools/list
3. How to process documents from my workspace
Конфигурация MCP Server + нативная интеграция с IDE Document AI
Any AI

Создание голосового агента

Prompt
Read this API documentation:
https://api.paperoffice.ai/latest/docs/postman

Create a voice agent that:
1. Takes audio input (Speech-to-Text)
2. Processes the text
3. Generates audio response (Text-to-Speech)

Use POST /job with:
- TTS: voice=Nadja, output_format=mp3, output=url
- Use priority=999 for sync TTS response.
Голосовой агент с TTS + STT
Any AI

Система обнаружения мошенничества

Prompt
Read this API documentation:
https://api.paperoffice.ai/latest/docs/postman

Build a fraud detection system that:
1. Checks device fingerprints
2. Validates IP geolocation
3. Detects suspicious patterns

Use the Security & Data AI endpoints.
These are instant APIs (no polling needed).
Обнаружение мошенничества с device fingerprint
Any AI

Пакетное разделение 3000 страниц

Prompt
Read this API documentation:
https://api.paperoffice.ai/latest/docs/postman

Create a batch processor that:
1. Takes a folder of large PDFs (up to 3000 pages each)
2. Uses POST /job with template=pdf_ai_split
3. Uses naming_instruction for smart filenames
4. Handles async jobs with polling (priority<900)

Use locale=de_DE for German document types.
Batch processor для PDF до 3000 страниц
Windsurf

windsurf-classifier

Prompt
Read this API documentation:
https://api.paperoffice.ai/latest/docs/postman

Build a document classifier that:
1. Watches a folder for new PDFs
2. Uses OCR (POST /job, ocr_mode=complete) to extract text
3. Classifies into: invoice, contract, receipt, correspondence
4. Moves files to category subfolders
5. Logs results to classification_log.csv

Use VISITOR Mode (no token) for testing.
Priority=900 for sync response.
Auto-Classification System mit Folder Watch
📄 Реальные сценарии использования

Сквозные рабочие процессы

Полные решения для реальных проблем

Kreditorenbuchhaltung

Счета → Бухгалтерия

1 Загрузка PDF
2 AI-IDP + ограничивающие рамки
3 Валидация
4 Экспорт
Python
# Produktion: Mit Token | Test: Ohne Token (VISITOR Mode)
import requests

def process_invoice(pdf_path, token=None):
    # Header nur wenn Token vorhanden
    headers = {"Authorization": f"Bearer {token}"} if token else {}
    
    # 1. AI-IDP mit Bounding Boxes
    response = requests.post(
        "https://api.paperoffice.ai/latest/job",
        headers=headers,
        files={"file_1": open(pdf_path, "rb")},
        data={
            "model": "premium",
            "idp_collection": "invoice",
            "priority": 900
        }
    )
    
    invoice = response.json()["job_result"]
    
    # 2. Bounding Boxes für Review
    for field, data in invoice["fields"].items():
        if data.get("confidence", 0) < 0.9:
            print(f"⚠️ Review: {field} @ bbox {data['bbox']}")
    
    # 3. Export für Buchhaltung
    return {
        "vendor": invoice["fields"]["vendor"]["value"],
        "amount": invoice["fields"]["total"]["value"],
        "date": invoice["fields"]["date"]["value"],
        "iban": invoice["fields"]["iban"]["value"]
    }

# Test ohne Token (VISITOR Mode)
process_invoice("invoice.pdf")

# Produktion mit Token
process_invoice("invoice.pdf", "po_usr_YOUR_TOKEN")
Legal Tech

Анализ контрактов + Knowledge Graph

1 Загрузка контракта
2 Ключевые термины
3 Knowledge Graph
4 Оповещения
Python
# Produktion: Mit Token | Test: Ohne Token (VISITOR Mode)
import requests

def analyze_contract(pdf_path, token=None):
    headers = {"Authorization": f"Bearer {token}"} if token else {}
    
    # Vertrag analysieren mit AI-IDP
    response = requests.post(
        "https://api.paperoffice.ai/latest/job",
        headers=headers,
        files={"file_1": open(pdf_path, "rb")},
        data={
            "model": "premium",
            "idp_collection": "contract",
            "priority": 900
        }
    )
    
    contract = response.json()["job_result"]
    
    # Key Terms extrahieren (mit Bounding Boxes!)
    key_terms = {
        "parties": contract["fields"]["parties"],
        "start_date": contract["fields"]["start_date"],
        "end_date": contract["fields"]["end_date"],
        "notice_period": contract["fields"]["notice_period"]
    }
    
    # Jedes Feld hat bbox für Verification
    for field, data in key_terms.items():
        print(f"{field}: {data['value']} @ {data['bbox']}")
    
    return key_terms
Document Conversion

PDF → Word/PowerPoint/PDF-A

1 Загрузка PDF
2 Выбор формата
3 Конвертация
4 Скачать
Python
# Produktion: Mit Token | Test: Ohne Token (VISITOR Mode)
import requests

def convert_pdf(pdf_path, target_format, token=None):
    """
    target_format: 'word', 'powerpoint', 'pdfa', 'webp'
    """
    headers = {"Authorization": f"Bearer {token}"} if token else {}
    
    response = requests.post(
        "https://api.paperoffice.ai/latest/job",
        headers=headers,
        files={"file_1": open(pdf_path, "rb")},
        data={
            "target_format": target_format,
            "priority": 900
        }
    )
    
    return response.json()["job_result"]["output_url"]

# VISITOR Mode (kein Token)
word_url = convert_pdf("report.pdf", "word")

# Mit Token für Produktion
pdfa_url = convert_pdf("contract.pdf", "pdfa", "po_usr_...")
Real-time Processing

Обработчик событий Webhook

1 Регистрация Webhook
2 Отправка документа
3 Получение события
4 Обработка
Python
# Webhooks benötigen Token (für Account-Zuordnung)
from flask import Flask, request
import requests
import hmac
import hashlib

app = Flask(__name__)
WEBHOOK_SECRET = "your_webhook_secret"
TOKEN = "po_usr_YOUR_TOKEN"  # Token erforderlich für Webhooks

# 1. Webhook registrieren
def setup_webhook():
    requests.post(
        "https://api.paperoffice.ai/latest/webhooks",
        headers={"Authorization": f"Bearer {TOKEN}"},
        json={
            "url": "https://your-server.com/webhook",
            "events": ["job.completed", "job.failed"],
            "secret": WEBHOOK_SECRET
        }
    )

# 2. Webhook empfangen
@app.route("/webhook", methods=["POST"])
def handle_webhook():
    signature = request.headers.get("X-PaperOffice-Signature")
    expected = hmac.new(
        WEBHOOK_SECRET.encode(),
        request.data,
        hashlib.sha256
    ).hexdigest()
    
    if not hmac.compare_digest(signature, expected):
        return "Invalid signature", 401
    
    event = request.json
    if event["event"] == "job.completed":
        process_result(event["job_result"])
    
    return "OK", 200
Accessibility

Документы → Аудиофайлы

1 OCR документа
2 Подготовка текста
3 Генерация TTS
4 Сохранение аудио
Python
# Produktion: Mit Token | Test: Ohne Token (VISITOR Mode)
import requests

def document_to_audio(pdf_path, voice="Nadja", token=None):
    headers = {"Authorization": f"Bearer {token}"} if token else {}
    
    # 1. OCR - Text extrahieren
    ocr_response = requests.post(
        "https://api.paperoffice.ai/latest/job",
        headers=headers,
        files={"file_1": open(pdf_path, "rb")},
        data={"ocr_mode": "complete", "priority": 900}
    )
    
    text = ocr_response.json()["job_result"]["text"]
    
    # 2. Text in Abschnitte teilen (max 5000 Zeichen)
    chunks = [text[i:i+5000] for i in range(0, len(text), 5000)]
    
    # 3. TTS für jeden Abschnitt
    audio_urls = []
    for chunk in chunks:
        tts_response = requests.post(
            "https://api.paperoffice.ai/latest/job",
            headers=headers,
            data={
                "text": chunk,
                "voice": voice,
                "output_format": "mp3",
                "output": "url",
                "priority": 999
            }
        )
        audio_urls.append(tts_response.json()["job_result"]["audio_url"])
    
    return audio_urls

# VISITOR Mode
urls = document_to_audio("handbuch.pdf")
print(f"Audio-Files: {len(urls)}")
Data Extraction

Ordner → OCR → CSV Export

1 Ordner scannen
2 Batch OCR
3 Text sammeln
4 CSV Export
Python
# Produktion: Mit Token | Test: Ohne Token (VISITOR Mode)
import requests
import os
import csv
from pathlib import Path

def batch_ocr_to_csv(folder_path, output_csv, token=None):
    """
    Verarbeitet alle PDFs/Bilder in einem Ordner und exportiert nach CSV.
    """
    headers = {"Authorization": f"Bearer {token}"} if token else {}
    
    # Unterstützte Formate
    extensions = {'.pdf', '.png', '.jpg', '.jpeg', '.tiff', '.webp'}
    files = [f for f in Path(folder_path).iterdir() 
             if f.suffix.lower() in extensions]
    
    results = []
    
    for file_path in files:
        print(f"Verarbeite: {file_path.name}")
        
        # OCR Request
        response = requests.post(
            "https://api.paperoffice.ai/latest/job",
            headers=headers,
            files={"file_1": open(file_path, "rb")},
            data={
                "ocr_mode": "complete",
                "priority": 900
            }
        )
        
        result = response.json()["job_result"]
        
        results.append({
            "filename": file_path.name,
            "pages": result.get("page_count", 1),
            "text_length": len(result.get("text", "")),
            "text_preview": result.get("text", "")[:500],
            "confidence": result.get("confidence", 0)
        })
    
    # CSV Export
    with open(output_csv, 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=results[0].keys())
        writer.writeheader()
        writer.writerows(results)
    
    print(f"✅ {len(results)} Dokumente → {output_csv}")
    return results

# VISITOR Mode - kein Token nötig!
batch_ocr_to_csv("./documents", "ocr_results.csv")

# Mit Token für Produktion
batch_ocr_to_csv("./documents", "results.csv", "po_usr_...")
💡 Профессиональные советы

Инсайдерские знания

Синхронный vs Асинхронный

priority >= 900 = мгновенный результат, priority < 900 = job ID + polling

priority=900 → Sync | priority=100 → Async

Режим VISITOR

Нет токена? Не проблема! Просто оставьте bearer_token пустым.

Authorization: Bearer (leer)

Ограничивающие рамки

Ответы AI-IDP включают ограничивающие рамки (bbox) для каждого поля — идеально для интерфейсов верификации.

{"bbox": [x1, y1, x2, y2]}

Лучший голос

Нативные голоса звучат естественнее. Speed 1.0 оптимален.

voice=Nadja, speed=1.0
ready_to_ship.sh
$ echo "Recipe copied?"
✓ Recipe copied!
$ echo "API Key ready?"
✓ VISITOR режим активен (или ваш ключ)
$ ./ship_it.sh
🚀 Готово к продакшену!