Проекты — Пиксель Тулс

Проекты

Список проектов

GET /api/projects

Возвращает список проектов текущего пользователя. Включает собственные проекты и расшаренные.

curl -X GET "https://ai.pixeltools.ru/api/projects" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "data": [
    {
      "id": 1,
      "user_id": 1,
      "name": "My Project",
      "brand": "MyBrand",
      "domain": "example.com",
      "activities": "Продажа товаров",
      "is_paused": false,
      "created_at": "2026-01-01T12:00:00Z"
    }
  ]
}

Поля ответа

ПолеТипОписание
idintegerID проекта. Используется во всех последующих запросах как {project}.
user_idintegerID владельца проекта
namestringНазвание проекта
brandstringБренд проекта
domainstringДомен проекта
activitiesstringВид деятельности
is_pausedbooleanПроект на паузе
created_atdatetimeДата создания

Доступные нейросети

GET /api/neurals

Возвращает список доступных нейросетей (ИИ-систем). ID нейросетей используются в параметре neurals[] для фильтрации данных.

curl -X GET "https://ai.pixeltools.ru/api/neurals" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "data": [
    { "id": 1, "system_name": "openai", "display_name": "ChatGPT", "model_url": "https://chatgpt.com" },
    { "id": 2, "system_name": "gemini", "display_name": "Gemini", "model_url": "https://gemini.google.com" },
    { "id": 3, "system_name": "perplexity", "display_name": "Perplexity", "model_url": "https://perplexity.ai" },
    { "id": 4, "system_name": "claude", "display_name": "Claude", "model_url": "https://claude.ai" }
  ]
}

Группы запросов проекта

GET /api/projects/{project}/groups

Возвращает список групп запросов (промптов) проекта. Используйте ID групп из этого ответа для параметра groups[] в эндпоинтах данных.

curl -X GET "https://ai.pixeltools.ru/api/projects/1/groups" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "data": [
    { "id": 5, "name": "Репутационные запросы", "is_favourite": true, "prompts_count": 12 },
    { "id": 8, "name": "Информационные запросы", "is_favourite": false, "prompts_count": 25 },
    { "id": 12, "name": "Сравнительные запросы", "is_favourite": false, "prompts_count": 8 },
    { "id": 15, "name": "Транзакционные запросы", "is_favourite": true, "prompts_count": 6 }
  ]
}

Поля ответа

ПолеТипОписание
idintegerID группы. Используется в параметре groups[] для фильтрации данных.
namestringНазвание группы
is_favouritebooleanГруппа отмечена как избранная
prompts_countintegerКоличество запросов в группе

Доступные фильтры проекта

GET /api/projects/{project}/filters

Возвращает все доступные значения фильтров для проекта в одном запросе: нейросети, группы, даты обновлений и допустимые значения перечислимых фильтров. Используйте этот эндпоинт перед запросами к данным, чтобы узнать какие ID и значения передавать.

curl -X GET "https://ai.pixeltools.ru/api/projects/1/filters" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "neurals": [
    { "id": 1, "system_name": "openai", "display_name": "ChatGPT" },
    { "id": 2, "system_name": "gemini", "display_name": "Gemini" },
    { "id": 3, "system_name": "perplexity", "display_name": "Perplexity" }
  ],
  "groups": [
    { "id": 5, "name": "Репутационные запросы", "is_favourite": true, "prompts_count": 12 },
    { "id": 8, "name": "Информационные запросы", "is_favourite": false, "prompts_count": 25 },
    { "id": 12, "name": "Сравнительные запросы", "is_favourite": false, "prompts_count": 8 }
  ],
  "update_dates": ["2026-03-05", "2026-03-12", "2026-03-19", "2026-03-26"],
  "first_update_date": "2026-03-05T10:00:00.000000Z",
  "last_update_date": "2026-03-26T10:00:00.000000Z",
  "prompts_count": 45,
  "enums": {
    "mention": [
      { "value": "has", "label": "Упомянут" },
      { "value": "not", "label": "Не упомянут" },
      { "value": "has_source", "label": "Есть в источниках" }
    ],
    "tone": [
      { "value": "positive", "label": "Положительная" },
      { "value": "neutral", "label": "Нейтральная" },
      { "value": "negative", "label": "Негативная" }
    ],
    "visibility": [
      { "value": "up", "label": "Выросла" },
      { "value": "down", "label": "Упала" }
    ],
    "competitor_type": [
      { "value": "brand", "label": "Бренд" },
      { "value": "competitor", "label": "Конкурент" }
    ],
    "metrics": [
      { "value": "visibility", "label": "Видимость" },
      { "value": "mentions", "label": "Упоминания" },
      { "value": "share_of_voice", "label": "Доля голоса" }
    ],
    "metrics_action": [
      { "value": "up", "label": "Рост" },
      { "value": "down", "label": "Падение" },
      { "value": "zero", "label": "Без изменений" }
    ]
  }
}

Поля ответа

ПолеТипОписание
neuralsarray Нейросети, подключённые к проекту. Используйте id в параметре neurals[].
groupsarray Группы запросов проекта. Используйте id в параметре groups[].
update_datesarray<string> Даты завершённых обновлений (формат YYYY-MM-DD). Используйте для параметра dates[].
first_update_datestring|null Дата первого обновления (ISO 8601). null если обновлений ещё не было.
last_update_datestring|null Дата последнего обновления (ISO 8601).
prompts_countinteger Общее количество запросов в проекте.
enumsobject Допустимые значения перечислимых фильтров с русскими подписями. Содержит: mention, tone, visibility, competitor_type, metrics, metrics_action.

Соответствие enums и параметров эндпоинтов

EnumПараметрЭндпоинты
mentionmentionanswers
tonetoneanswers
visibilityvisibilityanswers, sources
competitor_typetypecompetitors
metricsmetricscompetitors
metrics_actionmetricsActioncompetitors

Примеры использования каждого фильтра

Ниже показано, как применять каждый параметр фильтрации в запросах к API. Значения берутся из ответа /filters.

neurals[] — фильтр по нейросетям

Оставить данные только по ChatGPT (id=1) и Perplexity (id=3):

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?neurals[]=1&neurals[]=3" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

groups[] — фильтр по группам запросов

Данные только по группе «Репутационные запросы» (id=5):

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?groups[]=5" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

dates[] — фильтр по диапазону дат

Данные за март 2026 (используйте даты из update_dates):

curl -X GET "https://ai.pixeltools.ru/api/projects/1/summary?dates[]=2026-03-01&dates[]=2026-03-31" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

mention — фильтр по упоминаниям бренда

Только запросы, где бренд упомянут:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?mention=has" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Только запросы, где бренд не упомянут:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?mention=not" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

tone — фильтр по тональности

Только запросы с негативной тональностью:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?tone=negative" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

visibility — фильтр по динамике видимости

Только запросы, где видимость выросла:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?visibility=up" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

type — фильтр по типу конкурента

Только бренды (без конкурентов):

curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?type=brand" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

metrics + metricsAction — фильтр конкурентов по метрике и динамике

Конкуренты с растущей долей голоса:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?metrics=share_of_voice&metricsAction=up" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

prompt — поиск по тексту запроса

Найти запросы, содержащие слово «отзывы»:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?prompt=%D0%BE%D1%82%D0%B7%D1%8B%D0%B2%D1%8B" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

search — поиск по имени конкурента

Найти конкурента по названию:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?search=Yandex" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Комбинирование нескольких фильтров

Все фильтры можно комбинировать в одном запросе. Например, репутационные запросы + только ChatGPT + за март + только упомянутые:

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?\
groups[]=5&\
neurals[]=1&\
dates[]=2026-03-01&dates[]=2026-03-31&\
mention=has" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Фильтрация по группам запросов

Запросы (промпты) в проекте можно организовать в группы — например, «репутационные запросы», «сравнительные запросы», «информационные запросы» и т.д. Группы создаются в интерфейсе проекта на вкладке «Запросы».

Все основные эндпоинты выгрузки данных (answers, competitors, sources, summary) принимают параметр groups[], который фильтрует данные только по запросам из указанных групп. Это позволяет строить отчёты в разрезе конкретной тематики запросов.

Получить список групп и их ID можно через эндпоинт GET /api/projects/{project}/groups.

Формат параметра

# Фильтр по одной группе (ID = 5)
?groups[]=5

# Фильтр по нескольким группам (ID = 5 и 12)
?groups[]=5&groups[]=12

Когда groups[] не передан или пустой — данные возвращаются по всем запросам проекта (без фильтрации по группам).

Пример: данные по ответам только для группы «Репутационные запросы»

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?groups[]=5" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Пример: конкуренты по двум группам «Сравнительные» + «Информационные»

curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?groups[]=12&groups[]=8" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

При указании нескольких групп данные фильтруются по запросам, которые входят хотя бы в одну из указанных групп (логическое ИЛИ).

Сводка

GET /api/projects/{project}/summary

Возвращает сводные данные по проекту: кривую видимости бренда, тональность, видимость по группам.

Параметры запроса (query)

ПараметрТипПо умолчаниюОписание
dates[]arrayвесь период Диапазон дат: dates[]=2026-03-01&dates[]=2026-03-31
neurals[]array<int>все нейросети проекта ID нейросетей для фильтрации
groups[]array<int>все запросы ID групп запросов. Фильтрует данные только по промптам из указанных групп.
curl -X GET "https://ai.pixeltools.ru/api/projects/1/summary?groups[]=5&neurals[]=1&neurals[]=3" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "project": { "id": 1, "name": "My Project", "brand": "MyBrand", "domain": "example.com", ... },
  "filters": {
    "dates": ["2026-03-01", "2026-03-31"],
    "neurals": [1, 3],
    "groups": [5]
  },
  "events": [ ... ],
  "updateDates": ["2026-03-05", "2026-03-12", "2026-03-19", "2026-03-26"],
  "firstUpdateDate": "2026-03-05T10:00:00.000000Z",
  "lastUpdateDate": "2026-03-26T10:00:00.000000Z",
  "data": {
    "visibility_curve": [ ... ],
    "tone_chart": { ... },
    "group_visibility_chart": { ... },
    "visibility": { ... }
  }
}

Поля data

ПолеОписание
visibility_curveКривая видимости бренда по датам обновлений (серии по нейросетям + общая)
tone_chartДиаграмма тональности: positive / neutral / negative
group_visibility_chartВидимость в разрезе групп запросов
visibilityТекущая видимость и динамика

Конкуренты

GET /api/projects/{project}/competitors

Возвращает данные по конкурентам: таблицу видимости, графики, радарные диаграммы, долю голоса (share of voice).

Параметры запроса (query)

ПараметрТипПо умолчаниюОписание
dates[]arrayвесь период Диапазон дат
neurals[]array<int>все нейросети проекта ID нейросетей
groups[]array<int>все запросы ID групп запросов. Фильтрует конкурентов только по промптам из указанных групп.
typestring Тип конкурента: brand, competitor или пусто (все)
searchstring Поиск по имени конкурента
metricsstring Метрика: visibility, mentions, share_of_voice
metricsActionstring Фильтр динамики: up (рост), down (падение), zero (без изменений)
competitors_countinteger Ограничить количество конкурентов в ответе

Пример: конкуренты по группе «Сравнительные запросы»

curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?groups[]=12" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "project": { ... },
  "filters": {
    "dates": ["2026-03-01", "2026-03-31"],
    "neurals": [1, 2, 3],
    "groups": [12],
    "type": null,
    "search": null,
    "metrics": null,
    "metricsAction": null,
    "competitors_count": null
  },
  "types": {
    "brand": "Бренд",
    "competitor": "Конкурент"
  },
  "data": {
    "updateDates": ["2026-03-05", "2026-03-12"],
    "firstUpdateDate": "2026-03-05",
    "lastUpdateDate": "2026-03-12",
    "tableData": [
      {
        "id": 101,
        "competitor": "Конкурент А",
        "type": "competitor",
        "visibility": { "first": 45.5, "last": 52.3, "delta": 6.8 },
        "mentions": { "first": 12, "last": 15, "delta": 3 },
        "share_of_voice": { "first": 18.2, "last": 21.0, "delta": 2.8 },
        "members": [ ... ]
      }
    ],
    "excludedTableData": [ ... ],
    "chartData": {
      "visibility": [ ... ],
      "mentions": [ ... ],
      "share_of_voice": [ ... ]
    },
    "radarChartData": {
      "visibility": [ ... ],
      "mentions": [ ... ],
      "share_of_voice": [ ... ]
    }
  }
}

Ответы

GET /api/projects/{project}/answers

Возвращает анализ ответов нейросетей по проекту: таблицу видимости (позиции, упоминания, тональность) и историю по датам обновлений.

Параметры запроса (query)

ПараметрТипПо умолчаниюОписание
dates[]arrayвесь период Диапазон дат
neurals[]array<int>все нейросети проекта ID нейросетей
groups[]array<int>все запросы ID групп запросов. Возвращает данные только по промптам из указанных групп.
promptstring Поиск по тексту запроса (LIKE)
mentionstring Фильтр упоминаний: has (упомянут), not (не упомянут), has_source (есть в источниках)
tonestring Фильтр тональности: positive, neutral, negative
visibilitystring Фильтр динамики видимости: up (выросла), down (упала)
sortFieldstring Поле сортировки (например frequency_sort)
sortOrderstring Направление сортировки: asc или desc

Пример: ответы по группе «Репутационные запросы» с фильтром по упоминаниям

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?groups[]=5&mention=has" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "project": { ... },
  "filters": {
    "dates": ["2026-03-01", "2026-03-31"],
    "neurals": [1, 2, 3],
    "groups": [5],
    "prompt": "",
    "mention": "has",
    "tone": null,
    "visibility": null,
    "sortField": null,
    "sortOrder": null
  },
  "data": {
    "visibility": {
      "tableData": {
        "rows": [
          {
            "id": 101,
            "value": "отзывы о MyBrand",
            "groups": ["Репутационные запросы"],
            "groups_raw": [{ "id": 5, "value": "Репутационные запросы" }],
            "visibility": 75.0,
            "dynamic": "up",
            "frequency": 1200,
            "relevant_query": "отзывы mybrand",
            "neurals": {
              "1": { "mention": 1, "mention_position": 2, "tone": "positive", "comment": "..." },
              "3": { "mention": 1, "mention_position": 1, "tone": "neutral", "comment": "..." }
            }
          }
        ],
        "has_more": true,
        "next_cursor": "eyJ..."
      },
      "chartData": { ... }
    },
    "history": {
      "tableData": { ... },
      "chartData": { ... }
    }
  }
}

Поля строки таблицы visibility.tableData.rows[]

ПолеТипОписание
idintegerID промпта
valuestringТекст запроса
groupsarray<string>Названия групп, в которые входит запрос
groups_rawarrayГруппы с ID — массив {id, value}
visibilityfloat|nullВидимость (%) для последнего обновления
dynamicstring|nullДинамика: up, down, not_changed
frequencyinteger|nullЧастотность запроса (Wordstat)
relevant_querystring|nullРелевантный запрос для Wordstat

Пагинация: ответы возвращаются по 50 записей. Для получения следующей страницы передавайте cursor из next_cursor. Поле chartData возвращается только на первой странице.

Источники

GET /api/projects/{project}/sources

Возвращает данные по источникам: какие страницы ИИ-системы используют при генерации ответов.

Параметры запроса (query)

ПараметрТипПо умолчаниюОписание
dates[]arrayвесь период Диапазон дат
neurals[]array<int>нейросети с источниками ID нейросетей (используются только нейросети, поддерживающие источники)
groups[]array<int>все запросы ID групп запросов. Фильтрует источники только по промптам из указанных групп.
prompt_searchstring Поиск по тексту запроса
mention_filterstring Фильтр упоминаний
urls_countinteger100000 Максимальное количество URL в ответе
min_frequencyinteger Минимальная частотность запроса
visibilitystring Фильтр динамики: up, down

Пример: источники по группе «Информационные запросы»

curl -X GET "https://ai.pixeltools.ru/api/projects/1/sources?groups[]=8" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Ответ

{
  "project": { ... },
  "filters": {
    "dates": ["2026-03-01", "2026-03-31"],
    "neurals": [1, 3],
    "groups": [8],
    "urls_count": 100000,
    "prompt_search": null,
    "mention_filter": null,
    "min_frequency": null,
    "visibility": null
  },
  "data": {
    "visibility": {
      "tableData": { ... },
      "chartData": { ... }
    },
    "sources": {
      "tableData": { ... }
    },
    "history": {
      "tableData": { ... }
    }
  }
}

Разделы data

РазделОписание
visibilityВидимость сайта проекта в источниках: таблица + график по датам
sourcesСписок источников (URL или доменов) с количеством упоминаний
historyИстория изменений по датам

Сценарий: отчёт в разрезе группы запросов

Допустим, в проекте есть группы запросов: «Репутационные запросы» (id=5), «Сравнительные запросы» (id=12), «Информационные запросы» (id=8). Чтобы построить отдельный отчёт по каждой группе, выполните запросы к нужным эндпоинтам с параметром groups[].

Шаг 1. Получить список проектов

curl -X GET "https://ai.pixeltools.ru/api/projects" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# Из ответа берём id проекта, например id = 1

Шаг 2. Получить список групп проекта

curl -X GET "https://ai.pixeltools.ru/api/projects/1/groups" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# Ответ:
# { "data": [
#   { "id": 5, "name": "Репутационные запросы", "is_favourite": true, "prompts_count": 12 },
#   { "id": 8, "name": "Информационные запросы", "is_favourite": false, "prompts_count": 25 },
#   { "id": 12, "name": "Сравнительные запросы", "is_favourite": false, "prompts_count": 8 }
# ]}

Шаг 3. Запросить данные по каждой группе

Репутационные запросы (id=5)

# Сводка
curl -X GET "https://ai.pixeltools.ru/api/projects/1/summary?groups[]=5" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# Ответы (видимость + история)
curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?groups[]=5" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# Конкуренты
curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?groups[]=5" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# Источники
curl -X GET "https://ai.pixeltools.ru/api/projects/1/sources?groups[]=5" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Сравнительные запросы (id=12)

curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?groups[]=12" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?groups[]=12" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

curl -X GET "https://ai.pixeltools.ru/api/projects/1/sources?groups[]=12" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Шаг 4. Комбинирование фильтров

Параметр groups[] можно комбинировать с другими фильтрами:

# Репутационные запросы + только ChatGPT (neural id=1) + за март 2026
curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?\
groups[]=5&\
neurals[]=1&\
dates[]=2026-03-01&dates[]=2026-03-31" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# Сравнительные запросы + только упомянутые + позитивная тональность
curl -X GET "https://ai.pixeltools.ru/api/projects/1/answers?\
groups[]=12&\
mention=has&\
tone=positive" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# Конкуренты по репутационным запросам, только растущие
curl -X GET "https://ai.pixeltools.ru/api/projects/1/competitors?\
groups[]=5&\
metricsAction=up" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Все параметры фильтрации

Сводная таблица параметров, поддерживаемых каждым эндпоинтом.

Параметр summary competitors answers sources Описание
dates[] Диапазон дат [start, end]
neurals[] ID нейросетей
groups[] ID групп запросов
prompt Поиск по тексту запроса
prompt_search Поиск по тексту запроса (источники)
mention has / not / has_source
mention_filter Фильтр упоминаний для источников
tone positive / neutral / negative
visibility up / down
type brand / competitor
search Поиск по имени конкурента
metrics visibility / mentions / share_of_voice
metricsAction up / down / zero
competitors_count Лимит количества конкурентов
urls_count Лимит URL
min_frequency Минимальная частотность
sortField Поле сортировки
sortOrder asc / desc

Возможные ошибки

401 Unauthorized

{
  "message": "Invalid API token"
}

Неверный или отсутствующий API-токен.

403 Forbidden

Нет доступа к проекту. Убедитесь, что проект принадлежит вам или расшарен для вас.

404 Not Found

Проект не найден.

422 Validation Error

Ошибка валидации параметров запроса.

{
  "message": "The given data was invalid.",
  "errors": { ... }
}
Рейтинг статьи
0 (0 оценок)
Задайте вопрос или оставьте комментарий