QUERY_EXPORT_TYPE_GROUP_MEMBER_FIND_MANY
Выгружает список участников групп с информацией о прогрессе по курсу, кураторе, тарифе и активности.
Это тип отчёта для метода query-export/generate: передайте его
в поле type, а описанные ниже поля — в variables.
Колонки отчёта
Основной лист:- ID пользователя
- Фамилия Имя
- Способ входа
- Номер телефона
- ID курса
- Название курса
- Статус доступа
- Группа
- Куратор
- Текущий урок
- Прогресс (%)
- Кол-во завершённых уроков
- Всего уроков
- Дата добавления
- ID тарифа
- Тариф
- Кто добавил
- Дата завершения
- Последняя активность
- ID пользователя
- Фамилия Имя
- ID бандла
- Название бандла
- ID курса
- Название курса
- Прогресс (%)
- Кол-во завершённых уроков
- Всего уроков
- Текущий урок
Переменные (variables)
object
required
Параметры фильтрации.
Show Свойства filter
Show Свойства filter
integer[]
Фильтр по ID участников группы.
integer[]
Фильтр по ID групп.
integer[]
Фильтр по ID продуктов.
integer[]
Фильтр по ID пользователей.
integer[]
Фильтр по ID текущих уроков участников.
integer[]
Фильтр по ID кураторов (ID менеджеров продавца).
integer[]
Фильтр по ID пользователей, добавивших участника.
boolean
Фильтр по статусу доступа.
true — только активные, false — только деактивированные.string[]
Фильтр по статусам участника продукта. Массив из значений:
InUse, Completed.string
Поиск по тексту (до 50 символов).
object
Фильтр по диапазону прогресса (в процентах). Свойства
from и to — числа.object
Фильтр по диапазону дат создания доступа. Свойства
from и to — даты в формате ISO 8601.object
Вложенный фильтр по продукту. Набор полей совпадает с фильтром
product метода
«Список доступов к продуктам».object
Вложенный фильтр по тарифу (цене) продукта. Набор полей совпадает с фильтром
price метода
«Список доступов к продуктам».object
Параметры сортировки. Значения:
ASC (по возрастанию) или DESC (по убыванию).Show Свойства sort
Show Свойства sort
string
Сортировка по ID.
ASC | DESC.string
Сортировка по дате создания.
ASC | DESC.string
Сортировка по дате обновления.
ASC | DESC.string
Сортировка по порядковому номеру.
ASC | DESC.string
Сортировка по прогрессу (%).
ASC | DESC.string
Сортировка по дате последней активности пользователя.
ASC | DESC.curl --location 'https://api.exode.biz/saas/v2/query-export/generate' \
--header 'Seller-Id: {{ sellerId }}' \
--header 'School-Id: {{ schoolId }}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--data '{
"type": "QUERY_EXPORT_TYPE_GROUP_MEMBER_FIND_MANY",
"variables": {
"filter": {
"groupIds": [10, 20],
"active": true
},
"sort": {
"createdAt": "DESC"
}
}
}'
const axios = require('axios');
const exportGroupMembers = async () => {
try {
const response = await axios.post('https://api.exode.biz/saas/v2/query-export/generate', {
type: 'QUERY_EXPORT_TYPE_GROUP_MEMBER_FIND_MANY',
variables: {
filter: {
groupIds: [10, 20],
active: true
},
sort: {
createdAt: 'DESC'
}
}
}, {
headers: {
'Seller-Id': '{{ sellerId }}',
'School-Id': '{{ schoolId }}',
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
});
const { uuid } = response.data.payload;
console.log('Execution UUID:', uuid);
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
};
exportGroupMembers();
<?php
$url = 'https://api.exode.biz/saas/v2/query-export/generate';
$data = [
'type' => 'QUERY_EXPORT_TYPE_GROUP_MEMBER_FIND_MANY',
'variables' => [
'filter' => [
'groupIds' => [10, 20],
'active' => true
],
'sort' => [
'createdAt' => 'DESC'
]
]
];
$headers = [
'Seller-Id: {{ sellerId }}',
'School-Id: {{ schoolId }}',
'Content-Type: application/json',
'Authorization: Bearer YOUR_TOKEN'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200 || $httpCode === 201) {
$result = json_decode($response, true);
echo "Execution UUID: " . $result['payload']['uuid'] . "\n";
} else {
echo "Error: HTTP $httpCode\n";
echo $response;
}
?>
import requests
url = 'https://api.exode.biz/saas/v2/query-export/generate'
data = {
'type': 'QUERY_EXPORT_TYPE_GROUP_MEMBER_FIND_MANY',
'variables': {
'filter': {
'groupIds': [10, 20],
'active': True
},
'sort': {
'createdAt': 'DESC'
}
}
}
headers = {
'Seller-Id': '{{ sellerId }}',
'School-Id': '{{ schoolId }}',
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
try:
response = requests.post(url, json=data, headers=headers)
response.raise_for_status()
result = response.json()
print(f"Execution UUID: {result['payload']['uuid']}")
except requests.exceptions.RequestException as e:
print(f'Error: {e}')
ИдентификаторыГрупп = Новый Массив;
ИдентификаторыГрупп.Добавить(10);
ИдентификаторыГрупп.Добавить(20);
Фильтр = Новый Структура;
Фильтр.Вставить("groupIds", ИдентификаторыГрупп);
Фильтр.Вставить("active", Истина);
Сортировка = Новый Структура;
Сортировка.Вставить("createdAt", "DESC");
Переменные = Новый Структура;
Переменные.Вставить("filter", Фильтр);
Переменные.Вставить("sort", Сортировка);
Данные = Новый Структура;
Данные.Вставить("type", "QUERY_EXPORT_TYPE_GROUP_MEMBER_FIND_MANY");
Данные.Вставить("variables", Переменные);
// Serialize body to JSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Данные);
ТелоЗапроса = ЗаписьJSON.Закрыть();
Соединение = Новый HTTPСоединение("api.exode.biz", 443, , , , 30, Новый OpenSSLSecureConnection);
Запрос = Новый HTTPЗапрос("/saas/v2/query-export/generate");
Запрос.Заголовки.Вставить("Seller-Id", "{{ sellerId }}");
Запрос.Заголовки.Вставить("School-Id", "{{ schoolId }}");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.Заголовки.Вставить("Authorization", "Bearer YOUR_TOKEN");
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
Если Ответ.КодСостояния = 200 Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Результат = ПрочитатьJSON(ЧтениеJSON);
Сообщить("Экспорт запущен");
Иначе
Сообщить("Ошибка: HTTP " + Ответ.КодСостояния);
Сообщить(Ответ.ПолучитьТелоКакСтроку());
КонецЕсли;
{
"success": true,
"code": 200,
"payload": {
"total": 100,
"completed": 100,
"status": "Completed",
"result": {
"fileUrl": "https://static.exode.biz/generated/reports/79d46a97-a149-432b-bac7-45f6732b9115.xlsx",
"fileName": "79d46a97-a149-432b-bac7-45f6732b9115.xlsx",
"fileSize": 6748
}
}
}
Обновлено: 2026-07-22 12:24 UTC