Отчёты — Пиксель Тулс

Отчёты

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

Другие разделы

Рейтинг статьи
5 (1 оценка)
Задайте вопрос или оставьте комментарий