Анализы и шеринг
Эндпоинты для доступа к сохранённым анализам и управления публичными ссылками.
Аутентификация
Все эндпоинты требуют Bearer-токен. Доступны только анализы, созданные этим ключом.
GET /api/v1/analyses
Возвращает список всех анализов для текущего API-ключа.
Запрос
http
GET /api/v1/analyses
Authorization: Bearer YOUR_KEYОтвет
json
[
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"own_page": "https://example.com/product",
"created_at": "2026-05-06T12:00:00Z",
"triplet_analysis": false,
"share_url": null
},
{
"task_id": "660e8400-e29b-41d4-a716-446655440001",
"own_page": "https://example.com/about",
"created_at": "2026-05-05T09:30:00Z",
"triplet_analysis": true,
"share_url": "https://unihra.ru/s/abc123xyz"
}
]Срок хранения
Метаданные анализа хранятся 90 дней с момента создания задачи.
GET /api/v1/analyses/
Получает результат конкретного анализа. Если результат не кэширован — он запрашивается с API-сервиса.
Запрос
http
GET /api/v1/analyses/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer YOUR_KEYОтвет
Та же структура, что и в result при state: "SUCCESS" в потоке статуса.
HTTP-статусы
| Код | Значение |
|---|---|
200 | Успех |
404 | Анализ не найден или истёк срок хранения |
403 | Анализ принадлежит другому ключу |
POST /api/v1/analyses/{task_id}/share
Создаёт публичную ссылку на анализ. Ссылка доступна без авторизации.
Запрос
http
POST /api/v1/analyses/550e8400-e29b-41d4-a716-446655440000/share
Authorization: Bearer YOUR_KEY(тело запроса не требуется)
Ответ
json
{
"share_url": "https://unihra.ru/s/abc123xyz456",
"task_id": "550e8400-e29b-41d4-a716-446655440000"
}HTTP-статусы
| Код | Значение |
|---|---|
200 или 201 | Ссылка создана |
404 | Анализ не найден |
403 | Нет доступа |
DELETE /api/v1/analyses/{task_id}/share
Отзывает публичную ссылку. После отзыва ссылка перестаёт работать немедленно.
Запрос
http
DELETE /api/v1/analyses/550e8400-e29b-41d4-a716-446655440000/share
Authorization: Bearer YOUR_KEYОтвет
http
HTTP/1.1 204 No ContentПолный пример
python
import requests
BASE = "https://unihra.ru/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_KEY"}
# Список анализов
analyses = requests.get(f"{BASE}/analyses", headers=HEADERS).json()
task_id = analyses[0]["task_id"]
# Получить результат
result = requests.get(f"{BASE}/analyses/{task_id}", headers=HEADERS).json()
# Создать публичную ссылку
share = requests.post(f"{BASE}/analyses/{task_id}/share", headers=HEADERS).json()
print(share["share_url"])
# Отозвать
requests.delete(f"{BASE}/analyses/{task_id}/share", headers=HEADERS)