Довідник API
Повний довідник API для Vartovii.
Базова URL: https://sentryanalytic.com
Автентифікація
Більшість кінцевих точок є публічними. Кінцеві точки інструментів Agent вимагають API key:
curl -H "X-API-Key: your-api-key" https://sentryanalytic.com/api/agent/...
Кінцеві точки компаній
Пошук компаній
GET /api/company/search?q=QUERY
Параметри: | Назва | Тип | Обов'язково | Опис | |------|------|----------|-------------| | q | string | Так | Пошуковий запит | | limit | int | Ні | Максимальна кількість результатів (за замовчуванням: 10) |
Відповідь:
{
"companies": [
{
"company_name": "BMW",
"company_slug": "bmw",
"trust_score": 74,
"review_count": 5621
}
]
}
Отримати деталі компанії
GET /api/company/SLUG
Відповідь:
{
"company_name": "BMW",
"company_slug": "bmw",
"trust_score": 74,
"risk_level": "MEDIUM",
"avg_rating": 3.97,
"review_count": 5621,
"sentiment": {
"positive": 50,
"negative": 40,
"neutral": 10
},
"data_freshness": "fresh",
"last_updated": "2025-12-27"
}
Розумний пошук
GET /api/search/smart?q=QUERY&auto_scrape=true
Параметри: | Назва | Тип | За замовчуванням | Опис | |------|------|---------|-------------| | q | string | обов'язково | Назва компанії | | country | string | "de" | Код країни | | auto_scrape | bool | true | Автоматичний запуск скрапінгу |
Відповідь:
{
"status": "found",
"company_name": "BMW",
"data_status": "fresh",
"review_count": 5621,
"scraping_jobs": []
}
Кінцеві точки AI чату
Чат з AI
POST /api/ai/chat
Запит:
{
"message": "What's the Trust Score for BMW?",
"language": "auto",
"enable_grounding": false,
"enable_rag": true
}
Відповідь:
{
"response": "BMW has a Trust Score of 74/100...",
"status": "ok",
"grounded": false,
"rag_used": true,
"tools_used": true,
"tool_calls": [
{ "name": "search_company", "args": { "company_name": "BMW" } }
]
}
Перевірка стану
GET /api/ai/chat/health
Відповідь:
{
"status": "healthy",
"model": "gemini-2.5-flash",
"rag_corpus": "active"
}
Кінцеві точки інструментів Agent
⚠️ Потребує API Key: заголовок X-API-Key
Пошук компанії
POST /api/agent/search-company
Запит:
{
"company_name": "BMW",
"country": "de"
}
Отримати Trust Score
POST /api/agent/trust-score
Запит:
{
"company_name": "BMW"
}
Відповідь:
{
"company_name": "BMW",
"trust_score": 74,
"risk_level": "MEDIUM",
"breakdown": {
"rating_quality": 22.2,
"sentiment": 12.5,
"volume": 20.0,
"consistency": 9.0,
"recency": 10.0
}
}
Список компаній
POST /api/agent/list-companies
Запит:
{
"country": "de",
"limit": 10,
"sort_by": "trust_score"
}
Порівняння компаній
POST /api/agent/compare-companies
Запит:
{
"company1": "BMW",
"company2": "Audi"
}
Запуск аналізу
POST /api/agent/run-analysis
Запит:
{
"company_name": "Spotify",
"country": "de"
}
Відповідь:
{
"action": "analysis_started",
"company_name": "Spotify",
"company_slug": "spotify-ab1",
"scraping_jobs": ["uuid1", "uuid2", "uuid3", "uuid4"],
"message": "🚀 Analysis started!"
}
Отримати відгуки компанії
POST /api/agent/get-reviews
Запит:
{
"company_name": "BMW",
"sentiment": "positive",
"limit": 5
}
Кінцеві точки скрапінгу
Magic Search
POST /api/scraping/magic-search
Запит:
{
"company_name": "Spotify",
"country": "de",
"months_back": 24
}
Отримати статус завдання
GET /api/scraping/jobs/JOB_ID
Відповідь:
{
"job_id": "uuid",
"status": "running",
"source": "kununu",
"company_name": "Spotify",
"reviews_collected": 156,
"progress_percent": 78
}
Перелік усіх завдань
GET /api/scraping/jobs
Перелік активних завдань
GET /api/scraping/jobs/active
Керування завданнями
POST /api/scraping/jobs/{job_id}/pause
POST /api/scraping/jobs/{job_id}/resume
POST /api/scraping/jobs/{job_id}/cancel
Кінцеві точки аналітики
Отримати статистику компанії
GET /api/stats?company_slug=bmw
Розподіл настроїв
GET /api/sentiment-distribution?company_slug=bmw
Відповідь:
{
"positive": 50,
"negative": 35,
"neutral": 15
}
Розподіл рейтингів
GET /api/rating-distribution?company_slug=bmw
Отримати відгуки
GET /api/reviews?company_slug=bmw&limit=50
Отримати аспекти (ABSA)
GET /api/aspects?company_slug=bmw
Відповідь:
{
"aspects": [
{ "name": "Work-Life Balance", "positive": 120, "negative": 45 },
{ "name": "Salary", "positive": 80, "negative": 90 }
]
}
Отримати вакансії
GET /api/vacancies?company_slug=bmw
Хронологія
GET /api/timeline?company_slug=bmw
Кінцеві точки звітів
Згенерувати звіт
Запускає AI аналіз для компанії та зберігає результати в database.
POST /api/analyze/{company_slug}
Відповідь:
{
"status": "success",
"company": "BMW",
"analysis": {
"EXECUTIVE SUMMARY": "BMW показує високу задоволеність співробітників...",
"STRENGTHS": "Баланс між роботою та особистим життям, можливості кар'єрного зростання...",
"CONCERNS": "Комунікація з керівництвом, навантаження в деяких відділах...",
"RECOMMENDATIONS": "Зосередитися на покращенні внутрішньої комунікації..."
}
}
Примітки:
- Аналіз виконується у фоновому потоці (async)
- Результати кешуються в таблиці
company_reports - Повторний запуск перезаписує попередній аналіз
Отримати звіт
GET /api/reports/{company_name}
Завантажити PDF звіт
GET /api/download-report/{company_name}
Відповідь: завантаження PDF файлу
Кінцеві точки Crypto
Пошук Crypto проектів
GET /api/v2/crypto/search?q=QUERY
Отримати Crypto проєкт
GET /api/v2/crypto/project/SLUG
Відповідь:
{
"name": "Polkadot",
"symbol": "DOT",
"trust_score": 81,
"risk_level": "LOW",
"price_usd": 7.25,
"market_cap": 9500000000,
"tvl": 1200000000
}
Відповіді з помилками
Усі кінцеві точки повертають помилки в такому форматі:
{
"detail": "Company not found",
"status_code": 404
}
Поширені коди стану:
| Код | Значення |
|---|---|
| 200 | Успіх |
| 400 | Неправильний запит |
| 401 | Неавторизовано (відсутній API key) |
| 404 | Не знайдено |
| 429 | Перевищено ліміт запитів |
| 500 | Помилка сервера |
Документація API також доступна за адресою /docs (Swagger UI).
Кінцеві точки Forensic Agent
⚠️ Доступно через AI Chat або Agent Tools - Ці кінцеві точки забезпечують роботу Forensic Agent
Перевірка балансу гаманця
POST /api/forensic/check_wallet
Запит:
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
Відповідь:
{
"address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"eth_balance": 32.1112,
"usd_value": 94241.62,
"found": true,
"chain": "ethereum",
"etherscan_link": "https://etherscan.io/address/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
Отримати історію транзакцій
POST /api/forensic/transaction_history
Запит:
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"limit": 10,
"days": 30
}
Відповідь:
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"transactions": [
{
"hash": "0x123...",
"from": "0xabc...",
"to": "0xd8dA...",
"value_eth": 2.5,
"value_usd": 7334.15,
"timestamp": "2026-01-20T10:30:00Z",
"direction": "in"
}
],
"count": 5,
"etherscan_link": "https://etherscan.io/address/0xd8dA...#transactions"
}
Отримати власників токенів
POST /api/forensic/token_holders
Запит:
{
"contract_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"limit": 20
}
Відповідь:
{
"contract_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"token_symbol": "USDT",
"token_price_usd": 0.998,
"holders": [
{
"rank": 1,
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"balance": "21,951,179,974.29 USDT",
"balance_usd": 21925650751.98,
"percentage": 18.5
}
],
"count": 20,
"total_supply": 118490426863.74,
"etherscan_link": "https://etherscan.io/token/0xdac17f..."
}
Отримати інформацію про контракт
POST /api/forensic/contract_info
Запит:
{
"contract_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7"
}
Відповідь:
{
"address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"found": true,
"is_erc20": true,
"is_erc721": false,
"deployed_at": "2017-11-28T00:41:21+00:00",
"has_bytecode": true,
"contract_type": "ERC20 Token",
"etherscan_link": "https://etherscan.io/address/0xdac17f..."
}
Перевірка стану
GET /api/forensic/health
Відповідь:
{
"status": "healthy",
"bigquery_available": true,
"coingecko_available": true
}