For the complete documentation index, see llms.txt. This page is also available as Markdown.

Управление всеми сессиями

Общее управление сеансами

Получить сессии пользователя

get

Получает все сессии аутентифицированного пользователя, отсортированные по created_at в порядке убывания.

Структура ответа

При успешном выполнении (HTTP 200) ответ представляет собой JSON-объект, содержащий:

  "sessions": {
    "<session_id>": {
      "created_at": {
        "date": "ДД/ММ/ГГГГ",
        "time": "ЧЧ:ММ AM/PM"
      },
      "video_url": "...",
      "segments": <число>,
      "analyzed_video_url": "...",
      "activity": "...",
      "title": "...",
      "user_id": "...",
      "user_name": "...",
      "report_comments": {...},
      "metrics": {...}
      // другие поля сессии
    },
    "...": {...}
  }
} ```
### Обработка ошибок
- **400 Bad Request**: Некорректные параметры (например, отсутствующий или неверный токен).
- **401 Unauthorized**: Токен отсутствует или недействителен.
- **403 Forbidden**: У пользователя нет прав администратора.
- **404 Not Found**: Не удалось получить сессии (например, сессии не найдены).
- **500 Internal Server Error**: Непредвиденная ошибка на сервере.
### Безопасность
В заголовке `Authorization` должен быть указан действительный API-KEY токен.
Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Responses
200

Сессии пользователя успешно получены.

application/json
get/session-management/sessions/
GET /session-management/sessions/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
  "sessions": {
    "ANY_ADDITIONAL_PROPERTY": {}
  }
}

Получить сессии по ID

post

Получает детальные данные сессий по списку их ID. Этот эндпоинт используется, когда клиент уже имеет конкретные ID сессий (например, из сохраненных отчетов) и хочет получить их полные данные.

Тело запроса

  • session_ids (обязательно): Список ID документов сессий для получения.

Безопасность

Требуется Bearer Token в заголовке Authorization.

Ошибки

  • 400 Bad Request: Некорректные входные данные.

  • 401 Unauthorized: Отсутствует или недействителен токен.

  • 403 Forbidden: Пользователь не авторизован.

  • 500 Internal Server Error: Непредвиденная ошибка.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Body
session_idsstring[]Required

Список ID документов сессий для получения.

Responses
200

Сессии успешно получены.

application/json
post/session-management/sessions/by-ids/
POST /session-management/sessions/by-ids/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 24

{
  "session_ids": [
    "text"
  ]
}
{
  "sessions": {
    "ANY_ADDITIONAL_PROPERTY": {
      "session_id": "text",
      "activity": "text",
      "created_at": "2026-01-01T00:00:00.000Z",
      "uploaded_date": "2026-01-01T00:00:00.000Z",
      "video_url": "https://example.com",
      "thumbnail_url": "https://example.com",
      "analyzed_video_url": "https://example.com",
      "title": "text",
      "user_id": "text",
      "user_name": "text",
      "uploaded_name": "text",
      "uploaded_uid": "text",
      "user_status": "text",
      "video_status": "Processed",
      "exercise": "text"
    }
  }
}

Получить отфильтрованные сессии

get

Получает сессии пользователя, отфильтрованные по необязательным параметрам, таким как диапазон дат, тип активности, заголовок или ID пользователя. Также поддерживает пагинацию через start_after_id или end_before_id, если фильтры не применены.

Параметры запроса

  • start_after_id (строка, опционально): ID сессии, после которой начинать пагинацию. Используется только если фильтры не заданы.

  • end_before_id (строка, опционально): ID сессии, перед которой заканчивать пагинацию. Используется только если фильтры не заданы.

  • limit (целое число, опционально): Максимальное количество сессий для получения (по умолчанию=10).

  • activity (строка, опционально): Фильтр по типу активности (например, 'Running', 'Vertical Jump').

  • start_date (строка, опционально, формат: дд/мм/гггг): Фильтр сессий, созданных в эту дату или позже.

  • end_date (строка, опционально, формат: дд/мм/гггг): Фильтр сессий, созданных в эту дату или раньше.

  • title (строка, опционально): Фильтр по сессиям, заголовок которых содержит эту подстроку (без учета регистра).

  • user_id (строка, опционально): Фильтр по ID пользователя, сохраненному в сессии. | uploaded_by | строка | НОВОЕ UID пользователя, загрузившего исходное видео. | | video_status | строка processed\|failed | НОВОЕ текущее состояние. |

Структура ответа (HTTP 200)

При успешном выполнении ответ представляет собой JSON-объект, содержащий:

  • query_count (целое число): Общее количество соответствующих сессий.

  • sessions (объект): Словарь документов сессий с ключами в виде их ID.

  • first_doc_id (строка или null): ID первого документа в возвращенном наборе.

  • last_doc_id (строка или null): ID последнего документа в возвращенном наборе. Каждый объект сессии может включать поля, такие как video_url, activity, created_at, title, и т.д., а также вложенные данные (например, report_comments, metrics). Обратите внимание, что created_at возвращается как вложенный объект с полями date и time.

Обработка ошибок

  • 400 Bad Request: Некорректные параметры (например, неверный формат даты) или отсутствующий токен пользователя.

  • 401 Unauthorized: Токен отсутствует или недействителен.

  • 403 Forbidden: У пользователя нет прав администратора.

  • 404 Not Found: Нет соответствующих сессий.

  • 500 Internal Server Error: Непредвиденная ошибка на сервере.

Безопасность

В заголовке Authorization должен быть указан действительный API-KEY токен.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Query parameters
start_after_idstringOptional

ID сессии, после которой начинать пагинацию (используется только если фильтры не заданы).

end_before_idstringOptional

ID сессии, перед которой заканчивать пагинацию (используется только если фильтры не заданы).

limitintegerOptional

Максимальное количество сессий для получения (по умолчанию=10).

activitystring · enumOptional

Фильтр по типу активности (например, 'Running', 'Weightlifting', 'Vertical Jump' или 'Mobility Assessment').

Possible values:
start_datestringOptional

Фильтр сессий, созданных в эту дату или позже (дд/мм/гггг).

end_datestringOptional

Фильтр сессий, созданных в эту дату или раньше (дд/мм/гггг).

titlestringOptional

Фильтр по сессиям, заголовок которых содержит эту подстроку (без учета регистра).

user_idstringOptional

Фильтр по ID пользователя, сохраненному в документе сессии.

uploaded_bystringOptional

ID пользователя (администратора / суб-администратора), загрузившего видео.

video_statusstring · enumOptional

Состояние обработки видео сессии.

Possible values:
Responses
200

Отфильтрованные сессии успешно получены.

application/json
query_countintegerOptional

Общее количество соответствующих сессий.

first_doc_idstringOptional

ID первой сессии в результате или null, если нет.

last_doc_idstringOptional

ID последней сессии в результате или null, если нет.

get/session-management/sessions/filter/
GET /session-management/sessions/filter/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
  "query_count": 1,
  "sessions": {
    "ANY_ADDITIONAL_PROPERTY": {}
  },
  "first_doc_id": "text",
  "last_doc_id": "text"
}

Обновить данные сессии

put

Обновляет детали сессии (например, заголовок и временную метку created_at) для конкретной сессии. Требует прав администратора и действующего платежного плана.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Тело запроса (JSON)

  • title (строка, опционально): Обновленный заголовок для сессии.

  • created_at (строка, опционально, формат: ГГГГ-ММ-ДД ЧЧ:ММ:СС): Обновленная временная метка сессии.

Структура ответа

При успешном выполнении ответ содержит:

  • success (строка): Подтверждение обновления сессии.

Ошибки

  • 400 Bad Request: Некорректные параметры запроса или отсутствующие обязательные данные.

  • 401 Unauthorized: Отсутствует или недействителен токен доступа.

  • 403 Forbidden: Недостаточно прав или недействительный платежный план.

  • 404 Not Found: Сессия не найдена.

  • 500 Internal Server Error: Непредвиденная ошибка.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Body
titlestringOptional

Новый заголовок для сессии.

created_atstring · date-timeOptional

Обновленная временная метка сессии в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС.

Responses
200

Сессия успешно обновлена.

application/json
successstringOptional

Сообщение подтверждения.

put/session-management/sessions/{session_id}
PUT /session-management/sessions/{session_id} HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 91

{
  "title": "Обновленная сессия бега",
  "created_at": "2025-02-06 14:30:00"
}
{
  "success": "text"
}

Удалить сессию

delete

Удаляет указанную сессию и все связанные ресурсы, включая данные сессии, видеофайлы, подколлекции и отчеты.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Структура ответа

При успешном выполнении ответ содержит:

  • success (строка): Подтверждение удаления сессии.

Ошибки

  • 400 Bad Request: Некорректные параметры запроса.

  • 401 Unauthorized: Токен недействителен или отсутствует.

  • 403 Forbidden: У пользователя нет прав администратора.

  • 404 Not Found: Сессия не найдена.

  • 500 Internal Server Error: Непредвиденная ошибка.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Responses
200

Сессия успешно удалена.

application/json
successstringOptional

Сообщение подтверждения.

delete/session-management/sessions/{session_id}
DELETE /session-management/sessions/{session_id} HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
  "success": "text"
}

Получить URL анализированного видео

get

Получает URL анализированного видео для конкретной сессии или пытается создать его, если он не существует.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Параметры запроса

Эти необязательные флаги определяют тип анализа, если видео не существует:

  • is_jump (логический, опционально): Указывает, является ли эта сессия для анализа прыжка.

  • is_weight (логический, опционально): Указывает, является ли эта сессия для анализа тяжелой атлетики.

  • download (логический, опционально): Если true, возвращает подписанный URL, который заставляет браузер скачать видео вместо его отображения.

Ответ (HTTP 200)

Возвращает JSON-объект с ключом analyzed_video_url при успехе:

  "analyzed_video_url": "https://storage.googleapis.com/.../analyzed_video.mp4"
} ```
### Обработка ошибок
- **400 Bad Request**: Некорректные параметры (например, отсутствующий или неверный UID администратора).
- **401 Unauthorized**: Токен отсутствует или недействителен.
- **403 Forbidden**: У пользователя нет необходимых прав или плана.
- **404 Not Found**: Данные сессии или ресурсы не найдены.
- **500 Internal Server Error**: Непредвиденная ошибка на сервере.
### Безопасность
В заголовке `Authorization` должен быть указан действительный API-KEY токен.
Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Query parameters
is_jumpbooleanOptional

Указывает, является ли эта сессия для анализа прыжка.

is_weightbooleanOptional

Указывает, является ли эта сессия для анализа тяжелой атлетики.

downloadbooleanOptional

Если true, возвращает подписанный URL, который заставляет скачать видео.

Responses
200

URL анализированного видео успешно получен.

application/json
analyzed_video_urlstring · uriOptional

URL анализированного видео.

get/session-management/sessions/{session_id}/analyzed-video/
GET /session-management/sessions/{session_id}/analyzed-video/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Accept: */*
{
  "analyzed_video_url": "https://example.com"
}

Загрузить/сгенерировать анализированное видео

post

Загружает или генерирует анализированное видео для конкретной сессии, возвращая его URL.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Тело запроса (JSON)

  "is_jump": true,
  "is_weight": false
} ```
- **is_jump** *(логический, опционально)*: Если true, обрабатывать как сессию прыжка.
- **is_weight** *(логический, опционально)*: Если true, обрабатывать как сессию тяжелой атлетики.
### Структура ответа (HTTP 200)
При успехе возвращает JSON-объект с `analyzed_video_url`:
```json {
  "analyzed_video_url": "https://storage.googleapis.com/.../analyzed_video.mp4"
} ```
### Обработка ошибок
- **400 Bad Request**: Некорректные параметры или сессия уже анализирована.
- **401 Unauthorized**: Токен отсутствует или недействителен.
- **403 Forbidden**: У пользователя нет действительного плана.
- **404 Not Found**: Данные сессии не найдены.
- **500 Internal Server Error**: Непредвиденная ошибка на сервере.
### Безопасность
В заголовке `Authorization` должен быть указан действительный API-KEY токен.
Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Body
is_jumpbooleanOptional

Является ли эта сессия связанной с прыжками.

is_weightbooleanOptional

Является ли эта сессия связанной с тяжелой атлетикой.

Responses
200

URL анализированного видео успешно сгенерирован или обновлен.

application/json
analyzed_video_urlstring · uriOptional

URL нового или обновленного анализированного видео.

post/session-management/sessions/{session_id}/analyzed-video/
POST /session-management/sessions/{session_id}/analyzed-video/ HTTP/1.1
Host: api.aikynetix.app
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 34

{
  "is_jump": true,
  "is_weight": false
}
{
  "analyzed_video_url": "https://example.com"
}

Last updated

Was this helpful?