Обзор
DocScan AI предоставляет REST API для интеграции с внешними системами. API позволяет автоматизировать анализ юридических документов без использования веб-интерфейса.
📌 Базовый URL: https://docscan-ai.ru/api/v1
📌 Версия API: 1.0
📌 Формат данных: JSON
🔐 Аутентификация
API использует систему API-ключей для аутентификации. API-ключи доступны только для пользователей с бизнес-тарифами (Бизнес Старт, Бизнес Про, Бизнес Макс, Бизнес Безлимит).
Получение API-ключа
- Войдите в личный кабинет
- Перейдите в раздел "🔑 API-ключи"
- Создайте новый API-ключ
- ВАЖНО: Сохраните ключ сразу после создания, он больше не будет показан!
Использование API-ключа
API-ключ можно передать двумя способами:
Вариант 1: Заголовок X-API-Key
X-API-Key: ваш-api-ключ
Вариант 2: Заголовок Authorization (Bearer)
Authorization: Bearer ваш-api-ключ
📋 Эндпоинты
POST
/api/v1/analyze
Анализирует загруженный документ и возвращает результаты анализа.
Параметры запроса
Поддерживаются два формата:
Формат 1: multipart/form-data
file (обязательно) - файл документа (PDF, DOCX, DOC, TXT, JPG, PNG)
Формат 2: application/json
{
"file": "base64-encoded-file-content",
"filename": "document.pdf",
"mimeType": "application/pdf"
}
Пример запроса (multipart/form-data)
curl -X POST https://docscan-ai.ru/api/v1/analyze \
-H "X-API-Key: ваш-api-ключ" \
-F "file=@document.pdf"
Пример запроса (JSON с base64)
curl -X POST https://docscan-ai.ru/api/v1/analyze \
-H "X-API-Key: ваш-api-ключ" \
-H "Content-Type: application/json" \
-d '{
"file": "JVBERi0xLjQKJeLjz9MKMy...",
"filename": "document.pdf",
"mimeType": "application/pdf"
}'
Пример ответа (успех)
{
"success": true,
"analysis": {
"document_type": "rental",
"document_type_name": "Договор аренды",
"risk_level": "MEDIUM",
"summary": "Документ содержит основные условия аренды...",
"expert_analysis": {
"legal": "Юридическая экспертиза: ...",
"financial": "Финансовый анализ: ...",
"operational": "Операционные риски: ...",
"strategic": "Стратегическая оценка: ..."
},
"recommendations": [
"Рекомендация 1: ...",
"Рекомендация 2: ..."
],
"pages_count": 4,
"text_length": 4102
},
"metadata": {
"filename": "document.pdf",
"analyzed_at": "2024-02-17T22:14:13.123456",
"user_id": "40fef7e4"
}
}
Коды ответов
| Код |
Описание |
200 OK |
Анализ выполнен успешно |
400 Bad Request |
Неверный формат запроса или файла |
401 Unauthorized |
Неверный или отсутствующий API-ключ |
429 Too Many Requests |
Достигнут лимит анализов для вашего тарифа |
500 Internal Server Error |
Внутренняя ошибка сервера |
GET
/api/v1/usage
Возвращает статистику использования API для текущего пользователя.
Пример запроса
curl -X GET https://docscan-ai.ru/api/v1/usage \
-H "X-API-Key: ваш-api-ключ"
Пример ответа
{
"success": true,
"usage": {
"used_today": 5,
"total_used": 127,
"daily_limit": 50,
"plan": "business_pro",
"plan_expires": "2024-03-17"
}
}
GET
/api/v1/health
Проверяет работоспособность API. Не требует аутентификации.
Пример запроса
curl -X GET https://docscan-ai.ru/api/v1/health
Пример ответа
{
"success": true,
"status": "ok",
"version": "1.0",
"timestamp": "2024-02-17T22:14:13.123456"
}
📝 Примеры интеграции
Python
import requests
import base64
API_KEY = "ваш-api-ключ"
API_URL = "https://docscan-ai.ru/api/v1"
# Загрузка файла
with open("document.pdf", "rb") as f:
file_content = f.read()
file_base64 = base64.b64encode(file_content).decode('utf-8')
# Анализ документа
response = requests.post(
f"{API_URL}/analyze",
headers={
"X-API-Key": API_KEY,
"Content-Type": "application/json"
},
json={
"file": file_base64,
"filename": "document.pdf",
"mimeType": "application/pdf"
}
)
if response.status_code == 200:
result = response.json()
print(f"Тип документа: {result['analysis']['document_type_name']}")
print(f"Уровень риска: {result['analysis']['risk_level']}")
print(f"Резюме: {result['analysis']['summary']}")
else:
print(f"Ошибка: {response.json()['error']}")
JavaScript (Node.js)
const axios = require('axios');
const fs = require('fs');
const API_KEY = 'ваш-api-ключ';
const API_URL = 'https://docscan-ai.ru/api/v1';
// Загрузка файла
const fileContent = fs.readFileSync('document.pdf');
const fileBase64 = fileContent.toString('base64');
// Анализ документа
axios.post(`${API_URL}/analyze`, {
file: fileBase64,
filename: 'document.pdf',
mimeType: 'application/pdf'
}, {
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
}
})
.then(response => {
const result = response.data;
console.log(`Тип документа: ${result.analysis.document_type_name}`);
console.log(`Уровень риска: ${result.analysis.risk_level}`);
console.log(`Резюме: ${result.analysis.summary}`);
})
.catch(error => {
console.error('Ошибка:', error.response?.data?.error || error.message);
});
PHP
<?php
$apiKey = 'ваш-api-ключ';
$apiUrl = 'https://docscan-ai.ru/api/v1';
// Загрузка файла
$fileContent = file_get_contents('document.pdf');
$fileBase64 = base64_encode($fileContent);
// Анализ документа
$ch = curl_init($apiUrl . '/analyze');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: ' . $apiKey,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'file' => $fileBase64,
'filename' => 'document.pdf',
'mimeType' => 'application/pdf'
]));
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$result = json_decode($response, true);
echo "Тип документа: " . $result['analysis']['document_type_name'] . "\n";
echo "Уровень риска: " . $result['analysis']['risk_level'] . "\n";
echo "Резюме: " . $result['analysis']['summary'] . "\n";
} else {
$error = json_decode($response, true);
echo "Ошибка: " . $error['error'] . "\n";
}
?>