Отчёты
- GET /api/projects/{project}/reports
- GET /api/projects/{project}/reports/{report}
- POST /api/projects/{project}/reports
- Структура отчёта
- Настройки генерации (options)
- Возможные статусы
- Ошибки
API для создания, получения, мониторинга и скачивания отчётов проекта. Все эндпоинты требуют авторизации через API токен.
GET /api/projects/{project}/reports
Описание: Получить список отчётов проекта
curl -X GET "https://ai.pixeltools.ru/api/projects/1/reports" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Ответ
{
"data": [
{
"id": 15,
"project_id": 1,
"user_id": 1,
"status": "done",
"source_type": "manual",
"shared_key": "abc123",
"created_at": "2026-01-01T12:00:00Z",
"updated_at": "2026-01-01T12:10:00Z"
}
]
}
GET /api/projects/{project}/reports/{report}
Описание: Получить детальный отчёт
curl -X GET "https://ai.pixeltools.ru/api/projects/1/reports/15" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Ответ (если статус = done)
{
"id": 15,
"project_id": 1,
"user_id": 1,
"status": "done",
"source_type": "manual",
"shared_key": "abc123",
"options": { ... },
"created_at": "2026-01-01T12:00:00Z",
"updated_at": "2026-01-01T12:10:00Z",
"result": { ... }
}
POST /api/projects/{project}/reports
Описание: Создать новый отчёт
Минимальный пример
curl -X POST "https://ai.pixeltools.ru/api/projects/1/reports" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"options": {
"comparison_enabled": false,
"period_main": "last_30_days",
"blocks": [
{ "slug": "traffic" }
]
}
}'
Полный пример генерации со всеми настройками
curl -X POST "https://ai.pixeltools.ru/api/projects/1/reports" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"options": {
"comparison_enabled": true,
"period_main": "custom",
"period_main_dates": ["2026-01-01", "2026-01-31"],
"period_comparison": "custom",
"period_compare_dates": ["2025-12-01", "2025-12-31"],
"blocks": [
{ "slug": "traffic" },
{ "slug": "keywords" },
{ "slug": "visibility" },
{ "slug": "competitors" },
{ "slug": "positions" },
{ "slug": "top_pages" },
{ "slug": "devices" },
{ "slug": "regions" }
]
},
"status": "queued",
"source_type": "manual"
}'
Ответ (201 Created)
{
"id": 15,
"shared_key": "abc123",
"status": "queued",
"message": "Report queued successfully"
}
Структура отчёта
| Поле | Тип | Описание |
|---|---|---|
id |
integer | ID отчёта |
project_id |
integer | ID проекта |
user_id |
integer|null | Кто создал отчёт |
status |
string | queued / running / done / failed |
source_type |
string | manual / automatic / restart |
shared_key |
string | Публичный ключ доступа |
options |
object | Настройки генерации |
result |
object|null | Результат отчёта (если done) |
Настройки генерации (options)
| Поле | Тип | Описание |
|---|---|---|
comparison_enabled |
boolean | Включить сравнение периодов |
period_main |
enum | today, yesterday, last_7_days, last_30_days, this_month, last_month, custom |
period_main_dates |
[date,date] | Обязателен при custom |
period_comparison |
enum | Аналогично period_main |
period_compare_dates |
[date,date] | Диапазон сравнения |
blocks |
array | Выбранные блоки отчёта |
Возможные статусы
queued— в очередиrunning— выполняетсяdone— завершёнfailed— ошибка
Ошибки
401 Unauthorized
{
"message": "Invalid API token"
}
400 Report is not ready
{
"message": "Report is not ready yet",
"status": "running"
}
422 Validation Error
{
"message": "The given data was invalid."
}
404 Not Found
Если project_id не соответствует report.project_id
Другие разделы
Задайте вопрос или оставьте комментарий