Интеграция с системой управления заявками (Enroll)
Общая схема движения заявки
ИИ Код будущего (набор весна 2025 года)
Схема появится позднее
Методы API
ВАЖНО: в любом запросе необходимо указывать код платформы. Код платформы - это транскрибированное (на латинице, без пробелов) короткое название организации, которое присылали в запросе на доступ. Это не id организации в CAT!!! Платформа привязывается к каждому курсу по списку, который отправляется в запросе на доступ. Если курса не было в списке, по нему невозможно получить информацию через api.
/api/v2/ticket_application/
Получение списка заявок по платформе и курсу (курс указывается опционально). По каждой заявке в списке возвращается unti_id, id заявки,
статус. Запрос должен содержать хедер "Authorization: Token ***" с токеном администратора платформы.
Пример get запроса
GET /api/v2/ticket_application/
Параметры get запроса
* platform_id - код платформы, отправленный в запросе на доступ, обязательный параметр, * course_id - id курса на Платформе У2035 (из адресной строки курса в Каталоге) * unti_id - идентификатор пользователя (обязательно, если не указан course_id) Возможные комбинации фильтров: platform_id + course_id + unti_id <span class="speller-hint" data-toggle="popover" data-hint="1" data-original-title="" title="">platform</span>_id + <span class="speller-hint" data-toggle="popover" data-hint="2" data-original-title="" title="">unti</span>_id platform_id + course_id.
Пример ответа
{ "id": 825024, / id заявки на курс / "<span class="speller-hint" data-toggle="popover" data-hint="3" data-original-title="" title="">unti</span>_id": "1280859", / UntiID пользователя / "status": "approved", / статус заявки на курс / "future_code_module_id": null, / ID модуля / "future_code_module_num": null, / номер модуля / "<span class="speller-hint" data-toggle="popover" data-hint="4" data-original-title="" title="">transfert</span>_status": "activated", / статус трансферта / "admission_order_number": null, / номер приказа о зачислении / "admission_order_date": null, / дата приказа о зачислении / "expulsion_order_date": null, / дата приказа об отчислении / "course_id": 27211, / ID курса / "flow_id": 5827, / ID потока / "flow_num": 4, / номер потока / "pgu_id": null, / номер заявления в ЕПГУ / "pgu_dt": null, / дата подачи заявления в ЕПГУ / "<span class="speller-hint" data-toggle="popover" data-hint="5" data-original-title="" title="">service</span>_<span class="speller-hint" data-toggle="popover" data-hint="6" data-original-title="" title="">okato</span>": null, / ОКАТО пользователя / "algorithm_grade":null, / уровень знания алгоритмов / "language_grade": null, / уровень знания языка / "motivation_grade": null, / уровень мотивации / "end_dt": null, / дата прохождения ВИ / "untill_dt": null, / дата автоотклонения / "difficulty_level": "intermediate" / уровень сложности / "<span class="speller-hint" data-toggle="popover" data-hint="7" data-original-title="" title="">cof</span>_exit_exam_status": null, / статус прохождения испытания, допустимые значения: start (зашел на страницу итогового испытания), InProcess (приступил к итоговому испытанию), Success (успешное прохождение итогового испытания), UnSuccess (неуспешное прохождение итогового испытания) / "exit_motivation_grade": null, / уровень мотивации по итогу обучения / "exit_algorithm_grade": null, / уровень знания алгоритмов по итогу обучения / "exit_language_grade": null, / уровень знания языка программирования по итогу обучения / "is_timeout": null, / было ли завершено испытание, допустимые значения: true - испытание завершено принудительно по таймеру, false - испытание завершено самостоятельно слушателем / "exit_end_dt": null, / дата прохождения испытания по итогу обучения / "certificate_url: "", / ссылка на скачивание сертификата "certificate_number": "" / номер выданного сертификата }
* 400 если не хватает параметров в запросе или они не верны * 401 если запрос не авторизован * 403 если пользователь не является администратором указанной платформы
Ссылки на сваггеры:
тест https://cat.u2035test.ru/api/docs/#api-v2-ticket_application-list
прод https://cat.2035.university/api/docs/#api-v2-ticket_application-list
/api/v5/course/enroll/
Получение статуса заявки на курс по платформе, unti_id и id курса. В ответе приходит статус заявки.
Возможные значения статусов:
- review (На рассмотрении),
- approved (Одобрена),
- declined (Отклонена),
- expelled (Отчислен),
- accepted (Зачислен),
- transfer (Переведен).
Если нет заявки - возвращается статус null.
В запросе нужно указывать ИЛИ course_id - id курса на Платформе У2035 ИЛИ external_course_id - идентификатор курса на платформе провайдера.
Удобнее указывать course_id, как в других методах.
Запрос должен содержать хедер "Authorization: Token ***" с токеном администратора платформы.
Обратите внимание, что заполнение полей в additional_info зависит от того, кем была подана заявка. Если заявку подавал родитель, то в delegate_*
лежат данные ребенка, а в first_name, surname, middle_name, email - данные родителя. Если заявку подавал ребенок самостоятельно, delegate_*
пустые, а в first_name, surname, middle_name, email - данные самого ребенка.
Также состав полей в ответе зависит от наличия защищенного канала.
Пример get запроса
GET /api/v5/<span class="speller-hint" data-toggle="popover" data-hint="17" data-original-title="" title="">course</span>/<span class="<span class="speller-hint" data-toggle="popover" data-hint="18" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="7" data-original-title="" title="">enroll</span>/
Параметры get запроса
* platform_id - код платформы, отправленный в запросе на доступ, обязательный параметр, * <<span class="speller-hint" data-toggle="popover" data-hint="19" data-original-title="" title="">span</span> class="<span class="speller-hint" data-toggle="popover" data-hint="20" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="8" data-original-title="" title=""><span class="speller-hint" data-toggle="popover" data-hint="21" data-original-title="" title="">unti</span></span>_id - id пользователя, обязательный параметр, * <span class="speller-hint" data-toggle="popover" data-hint="9" data-original-title="" title="">external</span>_<span class="speller-hint" data-toggle="popover" data-hint="10" data-original-title="" title="">course</span>_id - идентификатор курса на платформе провайдера, обязательный параметр, если не указан course_id, * course_id - id курса на Платформе У2035 (из адресной строки курса в Каталоге), обязательный параметр, если не указан external_course_id
Пример ответа
*{ "application_id": 123456, / id заявки на курс /"application_status": "review", / статус заявки на курс / "<span class="speller-hint" data-toggle="popover" data-hint="22" data-original-title="" title="">transfert</span>_status": null, / статус трансферта / "admission_number": null, / номер приказа о зачислении / "admission_order_date": null, / дата приказа о зачислении / "expulsion_order_date": null, / дата приказа об отчислении/ "course_id": 19353, / ID курса / "future_code_module_id": null, / ID модуля / "future_code_module_number": null, / номер модуля / "flow_id": null, / ID потока / "pgu_id": 764472654, / номер заявления в ЕПГУ / "pgu_dt": "2022-06-22T21:00:00Z", / дата подачи заявления в ЕПГУ / "additional_info": {"first_name": "Ученика", / Фамилия ученика или родителя, только под VPN / "<span class="speller-hint" data-toggle="popover" data-hint="23" data-original-title="" title="">surname</span>": "<span class="speller-hint" data-toggle="popover" data-hint="24" data-original-title="" title="">Ученико</span>", / Имя ученика или родителя, только под VPN / "middle_name": "Ученику", / Отчество ученика или родителя, только под VPN / "email": "Ducts19501231235566@armyspy.com", / Email ученика или родителя, только под VPN / "delegate_first_name": null, / Фамилия ученика, только под VPN / "delegate_surname": null, / Имя ученика, только под VPN / "delegate_middle_name": "Нет отчества", / Отчество ученика, только под VPN / "delegate_email": null, / Email ученика, только под VPN / "service_okato": "14000000000", / ОКАТО пользователя, только под VPN / "course_address": "Москва, метро Марьино", / адрес курса / "course_latitude": 37.74483, / широта / "course_longitude": 55.649168, / долгота / "course_okato": "45000000000" / ОКАТО курса/"algorithm_grade": null, / уровень знания алгоритмов / "language_grade": null, / уровень знания языка / "motivation_grade": null, / уровень мотивации / "end_dt": null, / дата прохождения ВИ / "untill_dt": null, / дата автоотклонения / "difficulty_level": "intermediate" / уровень сложности / "<span class="speller-hint" data-toggle="popover" data-hint="11" data-original-title="" title="">cof</span>_exit_exam_status": null, / статус прохождения испытания, допустимые значения: start (зашел на страницу итогового испытания), InProcess (приступил к итоговому испытанию), Success (успешное прохождение итогового испытания), UnSuccess (неуспешное прохождение итогового испытания) / "exit_motivation_grade": null, / уровень мотивации по итогу обучения / "exit_algorithm_grade": null, / уровень знания алгоритмов по итогу обучения / "exit_language_grade": null, / уровень знания языка программирования по итогу обучения / "is_timeout": null, / было ли завершено испытание, допустимые значения: true - испытание завершено принудительно по таймеру, false - испытание завершено самостоятельно слушателем / "exit_end_dt": null, / дата прохождения испытания по итогу обучения / "certificate_url: "", / ссылка на скачивание сертификата "certificate_number": "" / номер выданного сертификата }
* 400 если не хватает параметров в запросе или они не верны
* 401 если запрос не авторизован
* 403 если пользователь не является администратором указанной платформы
* 404 если не найден пользователь/курс
Ссылки на сваггеры:
тест https://cat.u2035test.ru/api/docs/#api-v5-course-enroll-list
прод https://cat.2035.university/api/docs/#api-v5-course-enroll-list.
/api/v6/course/enroll/update/
Изменение статуса заявки на курс по платформе, unti_id, id курса или идентификатору заявки, или изменение уровня сложности по платформе и идентификатору заявки.
Для разных статусов надо передавать разный набор параметров. Отдельный набор параметров используется также для передачи уровня сложности.
Запрос должен содержать хедер "Authorization: Token ***" с токеном администратора платформы.
Пример post запроса
POST /api/v6/<span class="speller-hint" data-toggle="popover" data-hint="28" data-original-title="" title="">course</span>/<span class="<span class="speller-hint" data-toggle="popover" data-hint="29" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="15" data-original-title="" title="">enroll</span>/update/{ "platform_id": "platform", "application_id": 1, "unti_id": 1 "course_id": 1, "status": "declined", "difficulty_level": "intermediate" }
Общие параметры post запроса
* platform_id - код платформы, отправленный в запросе на доступ, обязательный параметр, * <span class="speller-hint" data-toggle="popover" data-hint="16" data-original-title="" title="">unti</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="17" data-original-title="" title="">unti</span>_id пользователя, обязательный параметр, * course_id - id курса на Платформе У2035 (из адресной строки курса в Каталоге), обязательный параметр, * application_id - идентификатор заявки, обязательный параметр, если не указаны unti_id, course_id, * status - str, обязательный параметр. Возможные значения: (review (На рассмотрении), approved (<span class="<span class="speller-hint" data-toggle="popover" data-hint="30" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="18" data-original-title="" title="">Одобрена</span>), declined (Отклонена), expelled (Отчислен), accepted (Зачислен), transfer (Переведен), finished (завершена).
Дополнительные параметры для простановки статуса approved
* flow - id потока, обязательный параметр, * enter_exam_date - дата в формате "%Y-%m-%d", обязательный параметр (актуально для проекта КБ 1 волны)
Дополнительные параметры для простановки статуса declined
* reason_choice - str, код причины отчисления, обязательный параметр
Возможные варианты: application_deadline (Получатель услуги не воспользовался возможностью прохождения Вступительного испытания (истечение срока заявки)), enter_exam_fail (Вступительные испытания пройдены неуспешно), by_recipient (Отклонено в связи с обращением заявителя/получателя поддержки), not_support_recipient (Заявитель не является получателем поддержки), no_places (Отсутствие свободного места на площадке Провайдера), provider_transfer (Перевод от Провайдера), other (Иное).
Изменение уровня сложности, возможно только если заявка в статусе approved
* platform_id - идентификатор платформы, обязательный параметр, * application_id - идентификатор заявки, обязательный параметр, * difficulty_level - str, уровень сложности, возможные значения: intermediate, elementary, advanced
Дополнительные параметры для простановки статуса expelled
При назначении этого статуса необходимо приложить файлы, указав тип содержимого multipart/form-data.
* reason_choice - str, код причины отчисления, обязательный параметр
Возможные варианты: reason_expelled_legitimate_user_application (По желанию заявителя) reason_expelled_legitimate_blocked (В связи с блоком на ЕПГУ) reason_expelled_legitimate_illness (Заболевание, амбулаторное, стационарное, санаторное лечение) <span class="speller-hint" data-toggle="popover" data-hint="19" data-original-title="" title="">reason</span>_expelled_legitimate_<span class="speller-hint" data-toggle="popover" data-hint="20" data-original-title="" title="">accomodation</span> (Изменение места жительства) reason_expelled_legitimate_family (Особые семейные обстоятельства) reason_expelled_legitimate_war (Особые условия нахождения Получателя услуги) reason_expelled_legitimate_army (Невозможность завершения обучения) reason_expelled_legitimate_provider_error (Ошибочно зачислен Провайдером) reason_expelled_legitimate_other (Другое - уважительная) <span class="speller-hint" data-toggle="popover" data-hint="21" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="22" data-original-title="" title="">not</span>_legitimate_absence (Непосещаемость) <span class="speller-hint" data-toggle="popover" data-hint="23" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="24" data-original-title="" title="">not</span>_legitimate_exam_failed (Неуспешная сдача промежуточной аттестации) <span class="speller-hint" data-toggle="popover" data-hint="25" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="26" data-original-title="" title="">not</span>_legitimate_no_document (Отсутствие справки) <span class="speller-hint" data-toggle="popover" data-hint="27" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="28" data-original-title="" title="">not</span>_legitimate_no_contract (Незаключение договора) <span class="speller-hint" data-toggle="popover" data-hint="29" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="30" data-original-title="" title="">not</span>_legitimate_other (Другое - неуважительная)
* reason_file - файл с подтверждением причины отчисления, * reason_file_ds - файл с ЭЦП.
Дополнительные параметры для простановки статуса accepted
Теперь можно при переводе в accepted указывать уровень сложности и не передавать его отдельно.
* accept_date - дата в формате "%Y-%m-%d", дата зачисления слушателя, обязательный параметр * admission_order_date - дата в формате "%Y-%m-%d", дата приказа о зачислении, обязательный параметр * admission_order_number - str, номер приказа о зачислении, обязательный параметр * employer_pays - true/false, за слушателя платит работодатель, если не передано, считается false * employer_price - decimal c точностью до сотых, сумма оплаты Работодателем, обязательно если employer_pays == true * employer_ogrn - строка, содержащая только цифры, ОГРН/ОГРНИП Работодателя, обязательно если employer_pays == true * employer_name - строка, Наименование работодателя, обязательно если employer_pays == true
* difficulty_level - str, возможные значения: intermediate, elementary, advanced
Изменение уровня сложности, возможно только если заявка в статусе accepted
* platform_id - идентификатор платформы, обязательный параметр, * application_id - идентификатор заявки, обязательный параметр, * difficulty_level - str, уровень сложности, возможные значения: intermediate, elementary, advanced
Пример ответа
* 200 {"success": true} * 400 если переданы некорректные параметры или нельзя изменить статус * 401 если запрос не авторизован * 403 если пользователь не является администратором указанной платформы * 404 если не найден пользователь/курс/заявка
При простановке уровня сложности:
1. при первичной простановке уровня сложности будет - {“success”: true}
2. если мы ещё раз дошлем такой же уровень сложности то будет - {"status": "application is already have difficulty_level - intermediate"}
Ссылки на сваггеры:
тест https://cat.u2035test.ru/api/docs/#api-v6-course-enroll-update-create
прод https://cat.2035.university/api/docs/#api-v6-course-enroll-update-create.
Обратите внимание, что POST запрос должен содержать параметры в теле запроса, а не в параметрах, например:
curl --location --request POST '<a class="external-link" href="https://cat.2035.university/api/v6/course/<span class="speller-hint" data-toggle="popover" data-hint="31" data-original-title="" title="">enroll</span>/update/">https://cat.2035.university/api/v6/course/enroll/update/</a>' \ --header 'Authorization: Token ХХХХХ' \ --header 'Content-Type: application/json' \ --data-raw '{ "unti_id": 1111111, "course_id": 21111111, "status": "declined", "platform_id": "autotest", }'
/api/v1/course-change-request/
Получение списка курсов, на которые можно переводить
Перевод с курса на курс
Получить список доступных ид курсов. Запрос должен содержать хедер "Authorization: Token ***" с токеном пользователя,
имеющего доступ для редактирования курса
Пример get запроса
GET /api/v1/course-change-request/?application_id=1&unti_id=222&course_id=123
Параметры GET запроса
* application_id - id заявки, обязательный параметр * <span class="speller-hint" data-toggle="popover" data-hint="32" data-original-title="" title="">unti</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="33" data-original-title="" title="">unti</span>_id пользователя, передается вместе с course_id * course_id - id курса, передается вместе с unti_id
Пример ответа
* <span class="speller-hint" data-toggle="popover" data-hint="34" data-original-title="" title="">200</span> {"<span class="speller-hint" data-toggle="popover" data-hint="35" data-original-title="" title="">avaliable</span>_course_ids": [1,2,3]} * 400 Не переданы unti_id + course_id или application_id * 401 запрос не авторизован * 403 у пользователя нет доступа к курсу * 404 курс не найден
Перевод заявки на курс
Пример post запроса
POST /api/v1/course-change-request/
Тело запроса
{ "course_id": 111, "application_id": 2222, }
Параметры POST запроса
* <span class="speller-hint" data-toggle="popover" data-hint="36" data-original-title="" title="">course</span>_id - id курса в каталоге (int) или uuid в <span class="speller-hint" data-toggle="popover" data-hint="37" data-original-title="" title="">rall</span>, обязательный параметр * application_id - id заявки, обязательный параметр
Пример ответа
* <span class="speller-hint" data-toggle="popover" data-hint="38" data-original-title="" title="">200</span> {"<span class="speller-hint" data-toggle="popover" data-hint="39" data-original-title="" title="">succes</span>": True, "id": 123} - заявка * 400 не передан обязательный параметр или такой набор тегов нельзя добавить из-за нарушения иерархии * 401 запрос не авторизован * 403 у пользователя нет доступа к курсу * 404 Заявка не найдена
Ссылки на сваггеры:
тест https://cat.u2035test.ru/api/docs/#api-v1-course-change-request-list
прод https://cat.2035.university/api/docs/#api-v1-course-change-request-list
тест https://cat.u2035test.ru/api/docs/#api-v1-course-change-request-create
прод https://cat.2035.university/api/docs/#api-v1-course-change-request-create
/api/v6/course/enroll/specify/
Уточнение данных по реквизитам приказа
Пример post запроса
POST /api/v6/<span class="speller-hint" data-toggle="popover" data-hint="35" data-original-title="" title="">course</span>/<span class="<span class="speller-hint" data-toggle="popover" data-hint="36" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="42" data-original-title="" title="">enroll</span>/specify/{ "application_id": 1, "platform_id": "platform", "accept_date": 2023-01-01, "admission_order_date": 2023-01-01, "admission_order_number": 1325345 }
Общие параметры POST запроса (заявка должна быть в статусе accepted и должен быть хотя бы один параметр)
* <span class="speller-hint" data-toggle="popover" data-hint="43" data-original-title="" title="">application</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="44" data-original-title="" title="">индентификатор</span> заявки, обязательный параметр * <span class="speller-hint" data-toggle="popover" data-hint="45" data-original-title="" title="">platform</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="46" data-original-title="" title="">индентификатор</span> платформы, обязательный параметр * accept_date - дата в формате "%Y-%m-%d", дата зачисления слушателя, необязательный параметр * admission_order_date - дата в формате "%Y-%m-%d", дата приказа о зачислении, необязательный параметр * admission_order_number - str, номер приказа о зачислении, необязательный параметр
Пример ответа
* 200 {"success": true} * 400 если переданы некорректные параметры * 401 если запрос не авторизован * 403 если пользователь не является администратором указанной платформы * 404 если не найден пользователь/курс/заявка
Ссылки на сваггеры:
прод https://cat.2035.university/api/docs/#api-v6-course-enroll-specify-create
Тестирование
Тестирование производится на продуктовой среде на тестовых заявках, созданных отдельно для каждого провайдера.
URL API Enroll для теста https://cat.2035.university/.
Пример урла для теста: https://cat.2035.university/api/v5/course/enroll/.
Подготовка к тестированию
Для того, чтобы интегрироваться в части управления заявками, необходимо:
Написать заявку на тестовый доступ к API управления заявками на почту apps@2035.university. Для запроса доступа необходимо с корпоративного адреса отправить письмо на apps@2035.university, тема письма - Доступы в API Enroll на проект «ИИ Код будущего 2025» организации _Полное_название_организации_»,
в теле письма должно быть:
-
- Проект: ИИ Код будущего 2025;
- Полное название организации;
- Контур: тестовый;
- Ответственное за интеграцию лицо:
- ФИО
- телефон.
- почта ответственного;
- транскрибированное (на латинице, без пробелов) короткое название организации (код платформы);
- ссылка на главную страницу организации (не на ЛК организации в У2035, а на официальный сайт ОО).
В течение 3 дней будет выдан доступ, в письме вы получите токен, номер курса для тестирования и id двух заявок для тестирования.
С этого момента можно приступать к тестированию функционала.
Для первой заявки проводится первый цикл тестирования
В первый цикл входит следующий набор действий:
- Получить статус заявки, используя /api/v2/ticket_application/ или /api/v2/ticket_application/.
- Отклонить заявку, используя /api/v6/course/enroll/update/.
Визуально после каждого шага можно убедиться в наличии заявки с соответствующим статусом в личном кабинете организации.
На этом завершается первый цикл тестирования.
Со второй заявкой проводится второй цикл тестирования.
Во второй цикл входит следующий набор действий:
- Получить статус заявки, используя /api/v2/ticket_application/ или /api/v2/ticket_application/.
- Одобрить заявку, используя /api/v6/course/enroll/update/.
- Для одобрения понадобится ID потока.
- ID потока можно увидеть на странице Потоки в разделе Управление курсами в ЛК в Каталоге.
- Отклонить заявку, используя /api/v6/course/enroll/update/.
Визуально после каждого шага можно убедиться в наличии заявки в личном кабинете организации. Там же отображается статус заявки.
Обратите внимание, что после отклонения заявки ее статус больше изменить нельзя!
После прохождения второго цикла испытаний нужно написать заявку на доступ в продуктовый контур.
Продуктовый контур
Доступ выдается только к опубликованным курсам.
Для перехода в продуктовый контур необходимо:
- Написать заявку на доступ к продуктовому API управления заявками на почту apps@2035.university, тема письма - Доступы к API Enroll на проект «ИИ Код будущего 2025» организации _Полное_название_организации_»,
в теле письма должно быть:- Проект: ИИ Код будущего 2025;
- Полное название организации;
- Контур: промышленный;
- Ответственное за интеграцию лицо:
- ФИО
- телефон.
- почта ответственного;
- ссылки на одобренные курсы на Платформе У2035, + по каждому идентификаторы курсов на платформе образовательной организации (целое уникальное число);
- транскрибированное (на латинице, без пробелов) короткое название организации (код платформы);
- ссылка на главную страницу организации (не на ЛК организации в У2035, а на официальный сайт ОО).
- Доступ в продуктовый контур выдается в течение 3 рабочих дней только к опубликованным курсам.
Эндпойнты для тестового и продуктового контура совпадают.
URL API Enroll для продуктового контура: https://cat.2035.university/.
Пример урла для продуктового контура: https://cat.2035.university/api/v5/course/enroll/.
Ограничения в продуктовом контуре
Ограничение по работе с заявками: не более 1 запроса в секунду.
Работа с заявками в продуктовом контуре
URL API Enroll для продакшена https://cat.2035.university/.
ID потока можно увидеть на странице Потоки в разделе Управление курсами в ЛК в Каталоге.
Обратите внимание, что после отклонения заявки ее статус больше изменить нельзя!