# API Аишки

Origin: https://eval.su. [OpenAPI](https://eval.su/openapi.json), [AI](https://eval.su/docs/ai.md), [события](https://eval.su/docs/events.md).

[Практические примеры: фотографии, подписи, форматирование, галереи и обложки](https://eval.su/docs/examples/media-publications.md) · [Готовые JSON-шаблоны статьи, портфолио и услуги](https://eval.su/docs/examples/media-publications.json).

Публичное чтение доступно без ключа. Личный ключ автоматически создаётся каждому аккаунту; получить его и выбрать разрешения можно в /settings/integrations. По умолчанию разрешено только чтение своего профиля через HTTP API, срок — 90 дней. Секрет открывается один раз после недавнего входа; при утрате перевыпустите ключ, предыдущий перестанет действовать. Для приложений и компаний можно создать отдельные ключи. В форме есть выбор всех доступных разрешений и отдельных групп; HTTP API и MCP для ИИ включаются отдельно. Выбор применяется только при сохранении и не открывает чужие записи или административные действия. Ключ передаётся только в Authorization: Bearer. Cookies и API ключи не вставляются в промпты. GET /api/v1/me/capabilities возвращает текущий профиль и права.

Сохранение черновика не публикует его. Используйте один requestUuid для повторов одной команды и актуальную expectedRevision для правки. 409 означает конфликт; 429 требует паузы Retry-After.

Значимое действие Bearer-клиент готовит через POST /api/v1/integration-commands/prepare {operationId, arguments}. Не добавляйте requestUuid/profileUuid в arguments: их закрепляет сервер. Владелец открывает возвращённую approvalUrl, проверяет точные параметры и подтверждает их. Затем исходное подключение вызывает POST /api/v1/integration-commands/{uuid}/commit. confirmed:true не заменяет это подтверждение.

Файлы: files.prepare → PUT upload content → files.complete → ready. Размер, тип и доступ проверяет сервер; произвольный URL не становится вложением.

## Операции

- [listProfiles — Найти специалистов](https://eval.su/docs/operations/listProfiles.md): `GET /api/v1/profiles`
- [getProfile — Открыть профиль](https://eval.su/docs/operations/getProfile.md): `GET /api/v1/profiles/{uuid}`
- [listPublications — Найти публикации](https://eval.su/docs/operations/listPublications.md): `GET /api/v1/publications`
- [getPublication — Открыть публикацию](https://eval.su/docs/operations/getPublication.md): `GET /api/v1/publications/{uuid}`
- [getMyCapabilities — Мои права и профили](https://eval.su/docs/operations/getMyCapabilities.md): `GET /api/v1/me/capabilities`
- [tasks.list — Заказы: мои публикации](https://eval.su/docs/operations/tasks.list.md): `GET /api/v1/commands/tasks.list`
- [tasks.get — Заказы: открыть редакцию](https://eval.su/docs/operations/tasks.get.md): `GET /api/v1/commands/tasks.get`
- [tasks.save — Заказы: сохранить черновик](https://eval.su/docs/operations/tasks.save.md): `POST /api/v1/commands/tasks.save`
- [tasks.submit — Заказы: отправить на проверку](https://eval.su/docs/operations/tasks.submit.md): `POST /api/v1/commands/tasks.submit`
- [tasks.hide — Заказы: скрыть](https://eval.su/docs/operations/tasks.hide.md): `POST /api/v1/commands/tasks.hide`
- [tasks.restore — Заказы: восстановить](https://eval.su/docs/operations/tasks.restore.md): `POST /api/v1/commands/tasks.restore`
- [tasks.delete — Заказы: удалить](https://eval.su/docs/operations/tasks.delete.md): `POST /api/v1/commands/tasks.delete`
- [portfolio.list — Портфолио: мои публикации](https://eval.su/docs/operations/portfolio.list.md): `GET /api/v1/commands/portfolio.list`
- [portfolio.get — Портфолио: открыть редакцию](https://eval.su/docs/operations/portfolio.get.md): `GET /api/v1/commands/portfolio.get`
- [portfolio.save — Портфолио: сохранить черновик](https://eval.su/docs/operations/portfolio.save.md): `POST /api/v1/commands/portfolio.save`
- [portfolio.submit — Портфолио: отправить на проверку](https://eval.su/docs/operations/portfolio.submit.md): `POST /api/v1/commands/portfolio.submit`
- [portfolio.hide — Портфолио: скрыть](https://eval.su/docs/operations/portfolio.hide.md): `POST /api/v1/commands/portfolio.hide`
- [portfolio.restore — Портфолио: восстановить](https://eval.su/docs/operations/portfolio.restore.md): `POST /api/v1/commands/portfolio.restore`
- [portfolio.delete — Портфолио: удалить](https://eval.su/docs/operations/portfolio.delete.md): `POST /api/v1/commands/portfolio.delete`
- [services.list — Услуги: мои публикации](https://eval.su/docs/operations/services.list.md): `GET /api/v1/commands/services.list`
- [services.get — Услуги: открыть редакцию](https://eval.su/docs/operations/services.get.md): `GET /api/v1/commands/services.get`
- [services.save — Услуги: сохранить черновик](https://eval.su/docs/operations/services.save.md): `POST /api/v1/commands/services.save`
- [services.submit — Услуги: отправить на проверку](https://eval.su/docs/operations/services.submit.md): `POST /api/v1/commands/services.submit`
- [services.hide — Услуги: скрыть](https://eval.su/docs/operations/services.hide.md): `POST /api/v1/commands/services.hide`
- [services.restore — Услуги: восстановить](https://eval.su/docs/operations/services.restore.md): `POST /api/v1/commands/services.restore`
- [services.delete — Услуги: удалить](https://eval.su/docs/operations/services.delete.md): `POST /api/v1/commands/services.delete`
- [articles.list — Статьи: мои публикации](https://eval.su/docs/operations/articles.list.md): `GET /api/v1/commands/articles.list`
- [articles.get — Статьи: открыть редакцию](https://eval.su/docs/operations/articles.get.md): `GET /api/v1/commands/articles.get`
- [articles.save — Статьи: сохранить черновик](https://eval.su/docs/operations/articles.save.md): `POST /api/v1/commands/articles.save`
- [articles.submit — Статьи: отправить на проверку](https://eval.su/docs/operations/articles.submit.md): `POST /api/v1/commands/articles.submit`
- [articles.hide — Статьи: скрыть](https://eval.su/docs/operations/articles.hide.md): `POST /api/v1/commands/articles.hide`
- [articles.restore — Статьи: восстановить](https://eval.su/docs/operations/articles.restore.md): `POST /api/v1/commands/articles.restore`
- [articles.delete — Статьи: удалить](https://eval.su/docs/operations/articles.delete.md): `POST /api/v1/commands/articles.delete`
- [jobs.list — Вакансии: мои публикации](https://eval.su/docs/operations/jobs.list.md): `GET /api/v1/commands/jobs.list`
- [jobs.get — Вакансии: открыть редакцию](https://eval.su/docs/operations/jobs.get.md): `GET /api/v1/commands/jobs.get`
- [jobs.save — Вакансии: сохранить черновик](https://eval.su/docs/operations/jobs.save.md): `POST /api/v1/commands/jobs.save`
- [jobs.submit — Вакансии: отправить на проверку](https://eval.su/docs/operations/jobs.submit.md): `POST /api/v1/commands/jobs.submit`
- [jobs.hide — Вакансии: скрыть](https://eval.su/docs/operations/jobs.hide.md): `POST /api/v1/commands/jobs.hide`
- [jobs.restore — Вакансии: восстановить](https://eval.su/docs/operations/jobs.restore.md): `POST /api/v1/commands/jobs.restore`
- [jobs.delete — Вакансии: удалить](https://eval.su/docs/operations/jobs.delete.md): `POST /api/v1/commands/jobs.delete`
- [resumes.list — Резюме: мои публикации](https://eval.su/docs/operations/resumes.list.md): `GET /api/v1/commands/resumes.list`
- [resumes.get — Резюме: открыть редакцию](https://eval.su/docs/operations/resumes.get.md): `GET /api/v1/commands/resumes.get`
- [resumes.save — Резюме: сохранить черновик](https://eval.su/docs/operations/resumes.save.md): `POST /api/v1/commands/resumes.save`
- [resumes.submit — Резюме: отправить на проверку](https://eval.su/docs/operations/resumes.submit.md): `POST /api/v1/commands/resumes.submit`
- [resumes.hide — Резюме: скрыть](https://eval.su/docs/operations/resumes.hide.md): `POST /api/v1/commands/resumes.hide`
- [resumes.restore — Резюме: восстановить](https://eval.su/docs/operations/resumes.restore.md): `POST /api/v1/commands/resumes.restore`
- [resumes.delete — Резюме: удалить](https://eval.su/docs/operations/resumes.delete.md): `POST /api/v1/commands/resumes.delete`
- [learning.list — Обучение: мои публикации](https://eval.su/docs/operations/learning.list.md): `GET /api/v1/commands/learning.list`
- [learning.get — Обучение: открыть редакцию](https://eval.su/docs/operations/learning.get.md): `GET /api/v1/commands/learning.get`
- [learning.save — Обучение: сохранить черновик](https://eval.su/docs/operations/learning.save.md): `POST /api/v1/commands/learning.save`
- [learning.submit — Обучение: отправить на проверку](https://eval.su/docs/operations/learning.submit.md): `POST /api/v1/commands/learning.submit`
- [learning.hide — Обучение: скрыть](https://eval.su/docs/operations/learning.hide.md): `POST /api/v1/commands/learning.hide`
- [learning.restore — Обучение: восстановить](https://eval.su/docs/operations/learning.restore.md): `POST /api/v1/commands/learning.restore`
- [learning.delete — Обучение: удалить](https://eval.su/docs/operations/learning.delete.md): `POST /api/v1/commands/learning.delete`
- [files.prepare — Подготовить загрузку файла](https://eval.su/docs/operations/files.prepare.md): `POST /api/v1/files/uploads`
- [files.status — Проверить файл](https://eval.su/docs/operations/files.status.md): `GET /api/v1/files/{uuid}`
- [files.complete — Завершить загрузку](https://eval.su/docs/operations/files.complete.md): `POST /api/v1/files/uploads/{uuid}/complete`
- [responses.create — Откликнуться на заказ](https://eval.su/docs/operations/responses.create.md): `POST /api/v1/commands/responses.create`
- [responses.list — Мои отклики](https://eval.su/docs/operations/responses.list.md): `GET /api/v1/commands/responses.list`
- [responses.get — Открыть отклик](https://eval.su/docs/operations/responses.get.md): `GET /api/v1/commands/responses.get`
- [responses.withdraw — Отозвать отклик](https://eval.su/docs/operations/responses.withdraw.md): `POST /api/v1/commands/responses.withdraw`
- [responses.status — Изменить статус отклика](https://eval.su/docs/operations/responses.status.md): `POST /api/v1/commands/responses.status`
- [offers.create — Предложить заказ](https://eval.su/docs/operations/offers.create.md): `POST /api/v1/commands/offers.create`
- [offers.list — Предложения заказов](https://eval.su/docs/operations/offers.list.md): `GET /api/v1/commands/offers.list`
- [offers.get — Открыть предложение](https://eval.su/docs/operations/offers.get.md): `GET /api/v1/commands/offers.get`
- [offers.accept — Принять предложение](https://eval.su/docs/operations/offers.accept.md): `POST /api/v1/commands/offers.accept`
- [offers.decline — Отклонить предложение](https://eval.su/docs/operations/offers.decline.md): `POST /api/v1/commands/offers.decline`
- [offers.withdraw — Отозвать предложение](https://eval.su/docs/operations/offers.withdraw.md): `POST /api/v1/commands/offers.withdraw`
- [deals.list — Мои сделки](https://eval.su/docs/operations/deals.list.md): `GET /api/v1/commands/deals.list`
- [deals.get — Открыть сделку](https://eval.su/docs/operations/deals.get.md): `GET /api/v1/commands/deals.get`
- [deals.results — Передать результат работы](https://eval.su/docs/operations/deals.results.md): `POST /api/v1/commands/deals.results`
- [deals.complete — Принять работу](https://eval.su/docs/operations/deals.complete.md): `POST /api/v1/commands/deals.complete`
- [deals.terminate — Завершить сотрудничество](https://eval.su/docs/operations/deals.terminate.md): `POST /api/v1/commands/deals.terminate`
- [job_responses.create — Откликнуться на вакансию](https://eval.su/docs/operations/job_responses.create.md): `POST /api/v1/commands/job_responses.create`
- [job_invitations.create — Пригласить по резюме](https://eval.su/docs/operations/job_invitations.create.md): `POST /api/v1/commands/job_invitations.create`
- [job_contacts.list — Обращения по работе](https://eval.su/docs/operations/job_contacts.list.md): `GET /api/v1/commands/job_contacts.list`
- [job_contacts.get — Открыть обращение по работе](https://eval.su/docs/operations/job_contacts.get.md): `GET /api/v1/commands/job_contacts.get`
- [job_contacts.status — Изменить статус обращения](https://eval.su/docs/operations/job_contacts.status.md): `POST /api/v1/commands/job_contacts.status`
- [threads.open — Открыть диалог](https://eval.su/docs/operations/threads.open.md): `POST /api/v1/commands/threads.open`
- [threads.list — Мои диалоги](https://eval.su/docs/operations/threads.list.md): `GET /api/v1/commands/threads.list`
- [threads.get — Открыть существующий диалог](https://eval.su/docs/operations/threads.get.md): `GET /api/v1/commands/threads.get`
- [threads.messages — Сообщения диалога](https://eval.su/docs/operations/threads.messages.md): `GET /api/v1/commands/threads.messages`
- [messages.send — Отправить сообщение](https://eval.su/docs/operations/messages.send.md): `POST /api/v1/commands/messages.send`
- [events.types — Типы событий](https://eval.su/docs/operations/events.types.md): `GET /api/v1/event-types`
- [events.catalog — Данные и примеры событий](https://eval.su/docs/operations/events.catalog.md): `GET /api/v1/event-catalog`
- [events.list — Получить события](https://eval.su/docs/operations/events.list.md): `GET /api/v1/events`
- [events.get — Прочитать событие](https://eval.su/docs/operations/events.get.md): `GET /api/v1/events/{uuid}`
- [webhooks.list — Получить вебхуки](https://eval.su/docs/operations/webhooks.list.md): `GET /api/v1/webhook-endpoints`
- [webhooks.create — Подготовить вебхук](https://eval.su/docs/operations/webhooks.create.md): `POST /api/v1/webhook-endpoints`
- [webhooks.update — Изменить вебхук](https://eval.su/docs/operations/webhooks.update.md): `PATCH /api/v1/webhook-endpoints/{uuid}`
- [webhooks.delete — Удалить вебхук](https://eval.su/docs/operations/webhooks.delete.md): `DELETE /api/v1/webhook-endpoints/{uuid}`
- [webhooks.approve — Подтвердить адрес вебхука](https://eval.su/docs/operations/webhooks.approve.md): `POST /api/v1/webhook-endpoints/{uuid}/approve`
- [webhooks.test — Проверить вебхук](https://eval.su/docs/operations/webhooks.test.md): `POST /api/v1/webhook-endpoints/{uuid}/test`
- [webhooks.rotate — Заменить секрет вебхука](https://eval.su/docs/operations/webhooks.rotate.md): `POST /api/v1/webhook-endpoints/{uuid}/rotate`
- [webhooks.deliveries — Доставки вебхука](https://eval.su/docs/operations/webhooks.deliveries.md): `GET /api/v1/webhook-endpoints/{uuid}/deliveries`
- [webhooks.replay — Повторить доставку](https://eval.su/docs/operations/webhooks.replay.md): `POST /api/v1/webhook-endpoints/deliveries/{uuid}/replay`
- [automations.list — Получить правила](https://eval.su/docs/operations/automations.list.md): `GET /api/v1/automations`
- [automations.create — Создать правило](https://eval.su/docs/operations/automations.create.md): `POST /api/v1/automations`
- [automations.update — Изменить правило](https://eval.su/docs/operations/automations.update.md): `PATCH /api/v1/automations/{uuid}`
- [automations.delete — Удалить правило](https://eval.su/docs/operations/automations.delete.md): `DELETE /api/v1/automations/{uuid}`
- [automations.dry_run — Проверить правило](https://eval.su/docs/operations/automations.dry_run.md): `POST /api/v1/automations/dry-run`
- [automations.executions — Исполнения правила](https://eval.su/docs/operations/automations.executions.md): `GET /api/v1/automations/{uuid}/executions`
- [profiles.get_own — Мой профиль](https://eval.su/docs/operations/profiles.get_own.md): `GET /api/v1/commands/profiles.get_own`
- [profiles.update — Сохранить профиль](https://eval.su/docs/operations/profiles.update.md): `POST /api/v1/commands/profiles.update`
- [favorites.set — Добавить в избранное](https://eval.su/docs/operations/favorites.set.md): `POST /api/v1/commands/favorites.set`
- [favorites.remove — Удалить из избранного](https://eval.su/docs/operations/favorites.remove.md): `POST /api/v1/commands/favorites.remove`
- [favorites.list — Моё избранное](https://eval.su/docs/operations/favorites.list.md): `GET /api/v1/commands/favorites.list`
- [complaints.list — Мои обращения в поддержку](https://eval.su/docs/operations/complaints.list.md): `GET /api/v1/commands/complaints.list`
- [reviews.list_own — Мои отзывы](https://eval.su/docs/operations/reviews.list_own.md): `GET /api/v1/commands/reviews.list_own`
- [complaints.create — Сообщить о нарушении](https://eval.su/docs/operations/complaints.create.md): `POST /api/v1/commands/complaints.create`
- [complaints.get — Открыть обращение](https://eval.su/docs/operations/complaints.get.md): `GET /api/v1/commands/complaints.get`
- [reviews.create — Оставить отзыв о завершённой работе](https://eval.su/docs/operations/reviews.create.md): `POST /api/v1/commands/reviews.create`
- [customers.get — Отзывы о заказчике](https://eval.su/docs/operations/customers.get.md): `GET /api/v1/commands/customers.get`
- [reviews.list_public — Отзывы специалиста](https://eval.su/docs/operations/reviews.list_public.md): `GET /api/v1/commands/reviews.list_public`
- [reviews.reply — Ответить на полученный отзыв](https://eval.su/docs/operations/reviews.reply.md): `POST /api/v1/commands/reviews.reply`
- [reviews.reply_remove — Удалить свой ответ на отзыв](https://eval.su/docs/operations/reviews.reply_remove.md): `POST /api/v1/commands/reviews.reply_remove`
- [learning.admissions.preview — Обучение: сроки и условия поступления](https://eval.su/docs/operations/learning.admissions.preview.md): `GET /api/v1/learning/runs/{run}/admission-preview`
- [learning.analytics.export — Обучение: Выгрузить учебные показатели](https://eval.su/docs/operations/learning.analytics.export.md): `POST /api/v1/learning/courses/{course}/analytics/export`
- [learning.analytics.get — Обучение: Учебные показатели](https://eval.su/docs/operations/learning.analytics.get.md): `GET /api/v1/learning/courses/{course}/analytics`
- [learning.appeals.create — Обучение: подать апелляцию](https://eval.su/docs/operations/learning.appeals.create.md): `POST /api/v1/learning/submissions/{submission}/appeals`
- [learning.appeals.decide — Обучение: рассмотреть апелляцию](https://eval.su/docs/operations/learning.appeals.decide.md): `POST /api/v1/learning/appeals/{appeal}/decision`
- [learning.appeals.escalate — Обучение: следующая инстанция апелляции](https://eval.su/docs/operations/learning.appeals.escalate.md): `POST /api/v1/learning/appeals/{appeal}/escalate`
- [learning.appeals.list — Обучение: апелляции](https://eval.su/docs/operations/learning.appeals.list.md): `GET /api/v1/learning/courses/{course}/appeals`
- [learning.appeals.list_for_submission — Обучение: обращения по решению](https://eval.su/docs/operations/learning.appeals.list_for_submission.md): `GET /api/v1/learning/submissions/{submission}/appeals`
- [learning.appeals.replacements — Обучение: подтверждённые варианты замены задания](https://eval.su/docs/operations/learning.appeals.replacements.md): `GET /api/v1/learning/appeals/{appeal}/replacement-options`
- [learning.applications.get — Обучение: Анкета поступления](https://eval.su/docs/operations/learning.applications.get.md): `GET /api/v1/learning/enrollments/{enrollment}/application`
- [learning.audit.list — Обучение: Журнал учебных изменений](https://eval.su/docs/operations/learning.audit.list.md): `GET /api/v1/learning/courses/{course}/audit`
- [learning.automatic_overrides.candidates — Обучение: Работы для явных исключений автопроверки](https://eval.su/docs/operations/learning.automatic_overrides.candidates.md): `GET /api/v1/learning/courses/{course}/automatic-override-candidates`
- [learning.automatic_overrides.create — Обучение: Подтвердить исключение автопроверки](https://eval.su/docs/operations/learning.automatic_overrides.create.md): `POST /api/v1/learning/submissions/{submission}/automatic-overrides`
- [learning.automatic_overrides.list — Обучение: История ручных исключений автопроверки](https://eval.su/docs/operations/learning.automatic_overrides.list.md): `GET /api/v1/learning/submissions/{submission}/automatic-overrides`
- [learning.automatic_overrides.revoke — Обучение: Отменить исключение автопроверки](https://eval.su/docs/operations/learning.automatic_overrides.revoke.md): `POST /api/v1/learning/submissions/{submission}/automatic-overrides/{override}/revoke`
- [learning.calendar.get — Обучение: мои сроки](https://eval.su/docs/operations/learning.calendar.get.md): `GET /api/v1/learning/enrollments/{enrollment}/calendar`
- [learning.community.create — Обучение: Создать учебное обращение](https://eval.su/docs/operations/learning.community.create.md): `POST /api/v1/learning/enrollments/{enrollment}/threads`
- [learning.community.get — Обучение: Открыть обсуждение](https://eval.su/docs/operations/learning.community.get.md): `GET /api/v1/learning/threads/{thread}`
- [learning.community.list — Обучение: Мои учебные обсуждения](https://eval.su/docs/operations/learning.community.list.md): `GET /api/v1/learning/enrollments/{enrollment}/threads`
- [learning.community.recipients — Обучение: Найти учащегося для обращения](https://eval.su/docs/operations/learning.community.recipients.md): `GET /api/v1/learning/courses/{course}/message-recipients`
- [learning.community.reply — Обучение: Ответить в обсуждении](https://eval.su/docs/operations/learning.community.reply.md): `POST /api/v1/learning/threads/{thread}/messages`
- [learning.community.resolve — Обучение: Завершить обращение](https://eval.su/docs/operations/learning.community.resolve.md): `POST /api/v1/learning/threads/{thread}/resolve`
- [learning.community.staff_create — Обучение: Связаться с учащимся](https://eval.su/docs/operations/learning.community.staff_create.md): `POST /api/v1/learning/courses/{course}/enrollments/{enrollment}/threads`
- [learning.community.staff_list — Обучение: Обращения учащихся](https://eval.su/docs/operations/learning.community.staff_list.md): `GET /api/v1/learning/courses/{course}/threads`
- [learning.completion.get — Обучение: итоговая запись](https://eval.su/docs/operations/learning.completion.get.md): `GET /api/v1/learning/enrollments/{enrollment}/completion`
- [learning.course_reviews.list — Обучение: Отзывы об обучении](https://eval.su/docs/operations/learning.course_reviews.list.md): `GET /api/v1/learning/courses/{course}/course-reviews`
- [learning.course_reviews.own — Обучение: Мой отзыв об обучении](https://eval.su/docs/operations/learning.course_reviews.own.md): `GET /api/v1/learning/enrollments/{enrollment}/course-review`
- [learning.course_reviews.remove — Обучение: Удалить свой отзыв с сохранением истории](https://eval.su/docs/operations/learning.course_reviews.remove.md): `POST /api/v1/learning/enrollments/{enrollment}/course-review/remove`
- [learning.course_reviews.save — Обучение: Сохранить отзыв об обучении](https://eval.su/docs/operations/learning.course_reviews.save.md): `POST /api/v1/learning/enrollments/{enrollment}/course-review`
- [learning.courses.archive — Обучение: архивировать курс](https://eval.su/docs/operations/learning.courses.archive.md): `POST /api/v1/learning/courses/{course}/archive`
- [learning.courses.author_get — Обучение: редактор программы](https://eval.su/docs/operations/learning.courses.author_get.md): `GET /api/v1/learning/author/courses/{course}`
- [learning.courses.author_list — Обучение: мои курсы](https://eval.su/docs/operations/learning.courses.author_list.md): `GET /api/v1/learning/author/courses`
- [learning.courses.bundle — Обучение: Выгрузить авторский пакет](https://eval.su/docs/operations/learning.courses.bundle.md): `POST /api/v1/learning/courses/{course}/bundle`
- [learning.courses.copy — Обучение: копировать курс](https://eval.su/docs/operations/learning.courses.copy.md): `POST /api/v1/learning/courses/{course}/copy`
- [learning.courses.create — Обучение: создать курс](https://eval.su/docs/operations/learning.courses.create.md): `POST /api/v1/learning/courses`
- [learning.courses.from_publication — Обучение: создать программу из своей карточки](https://eval.su/docs/operations/learning.courses.from_publication.md): `POST /api/v1/learning/courses/from-publication`
- [learning.courses.get — Обучение: карточка и программа](https://eval.su/docs/operations/learning.courses.get.md): `GET /api/v1/learning/courses/{course}`
- [learning.courses.import — Обучение: Импортировать приватный курс](https://eval.su/docs/operations/learning.courses.import.md): `POST /api/v1/learning/import`
- [learning.courses.list — Обучение: каталог курсов](https://eval.su/docs/operations/learning.courses.list.md): `GET /api/v1/learning/courses`
- [learning.courses.preview — Обучение: посмотреть глазами ученика](https://eval.su/docs/operations/learning.courses.preview.md): `POST /api/v1/learning/courses/{course}/preview`
- [learning.courses.publish — Обучение: опубликовать версию](https://eval.su/docs/operations/learning.courses.publish.md): `POST /api/v1/learning/courses/{course}/publish`
- [learning.courses.update — Обучение: сохранить программу](https://eval.su/docs/operations/learning.courses.update.md): `PATCH /api/v1/learning/courses/{course}`
- [learning.courses.validate — Обучение: проверить программу](https://eval.su/docs/operations/learning.courses.validate.md): `POST /api/v1/learning/courses/{course}/validate`
- [learning.demo.apply — Обучение: learning.demo.apply](https://eval.su/docs/operations/learning.demo.apply.md): `POST /api/v1/learning/enrollments/{enrollment}/steps/{node}/apply-demo`
- [learning.demo.progress — Обучение: learning.demo.progress](https://eval.su/docs/operations/learning.demo.progress.md): `GET /api/v1/learning/courses/{course}/demo-progress`
- [learning.demo.try — Обучение: learning.demo.try](https://eval.su/docs/operations/learning.demo.try.md): `POST /api/v1/learning/courses/{course}/steps/{node}/demo`
- [learning.drafts.save — Обучение: сохранить ответ](https://eval.su/docs/operations/learning.drafts.save.md): `PUT /api/v1/learning/enrollments/{enrollment}/steps/{node}/draft`
- [learning.enrollments.accept_invitation — Обучение: принять приглашение](https://eval.su/docs/operations/learning.enrollments.accept_invitation.md): `POST /api/v1/learning/enrollments/{enrollment}/accept-invitation`
- [learning.enrollments.course_list — Обучение: учащиеся потока](https://eval.su/docs/operations/learning.enrollments.course_list.md): `GET /api/v1/learning/courses/{course}/enrollments`
- [learning.enrollments.decide — Обучение: решение по зачислению](https://eval.su/docs/operations/learning.enrollments.decide.md): `POST /api/v1/learning/enrollments/{enrollment}/decision`
- [learning.enrollments.enroll — Обучение: записаться](https://eval.su/docs/operations/learning.enrollments.enroll.md): `POST /api/v1/learning/runs/{run}/enroll`
- [learning.enrollments.get — Обучение: программа учащегося](https://eval.su/docs/operations/learning.enrollments.get.md): `GET /api/v1/learning/enrollments/{enrollment}`
- [learning.enrollments.invite — Обучение: именное приглашение](https://eval.su/docs/operations/learning.enrollments.invite.md): `POST /api/v1/learning/runs/{run}/invite`
- [learning.enrollments.list — Обучение: мое обучение](https://eval.su/docs/operations/learning.enrollments.list.md): `GET /api/v1/learning/enrollments`
- [learning.enrollments.override — Обучение: персональные условия](https://eval.su/docs/operations/learning.enrollments.override.md): `POST /api/v1/learning/enrollments/{enrollment}/overrides`
- [learning.enrollments.pause — Обучение: приостановить](https://eval.su/docs/operations/learning.enrollments.pause.md): `POST /api/v1/learning/enrollments/{enrollment}/pause`
- [learning.enrollments.pause_preview — Обучение: Посмотреть условия паузы](https://eval.su/docs/operations/learning.enrollments.pause_preview.md): `GET /api/v1/learning/enrollments/{enrollment}/pause-preview`
- [learning.enrollments.restore — Обучение: вернуться с сохранением истории](https://eval.su/docs/operations/learning.enrollments.restore.md): `POST /api/v1/learning/enrollments/{enrollment}/restore`
- [learning.enrollments.resume — Обучение: продолжить](https://eval.su/docs/operations/learning.enrollments.resume.md): `POST /api/v1/learning/enrollments/{enrollment}/resume`
- [learning.enrollments.start — Обучение: начать](https://eval.su/docs/operations/learning.enrollments.start.md): `POST /api/v1/learning/enrollments/{enrollment}/start`
- [learning.enrollments.withdraw — Обучение: выйти](https://eval.su/docs/operations/learning.enrollments.withdraw.md): `POST /api/v1/learning/enrollments/{enrollment}/withdraw`
- [learning.exports.course — Обучение: экспорт программы](https://eval.su/docs/operations/learning.exports.course.md): `POST /api/v1/learning/courses/{course}/exports`
- [learning.exports.enrollment — Обучение: экспорт личной истории](https://eval.su/docs/operations/learning.exports.enrollment.md): `POST /api/v1/learning/enrollments/{enrollment}/exports`
- [learning.exports.get — Обучение: состояние и результат экспорта](https://eval.su/docs/operations/learning.exports.get.md): `GET /api/v1/learning/exports/{export}`
- [learning.extensions.course_list — Обучение: Запросы продления учащихся](https://eval.su/docs/operations/learning.extensions.course_list.md): `GET /api/v1/learning/courses/{course}/extension-requests`
- [learning.extensions.create — Обучение: Попросить продление или попытку](https://eval.su/docs/operations/learning.extensions.create.md): `POST /api/v1/learning/enrollments/{enrollment}/extensions`
- [learning.extensions.decide — Обучение: Решить запрос продления](https://eval.su/docs/operations/learning.extensions.decide.md): `POST /api/v1/learning/extension-requests/{extension}/decide`
- [learning.extensions.list — Обучение: Мои запросы продления](https://eval.su/docs/operations/learning.extensions.list.md): `GET /api/v1/learning/enrollments/{enrollment}/extensions`
- [learning.groups.create — Обучение: Создать учебную группу](https://eval.su/docs/operations/learning.groups.create.md): `POST /api/v1/learning/runs/{run}/groups`
- [learning.groups.list — Обучение: Учебные группы](https://eval.su/docs/operations/learning.groups.list.md): `GET /api/v1/learning/courses/{course}/groups`
- [learning.groups.members — Обучение: Изменить участников учебной группы](https://eval.su/docs/operations/learning.groups.members.md): `POST /api/v1/learning/groups/{group}/members`
- [learning.groups.staff — Обучение: Назначить команду группы](https://eval.su/docs/operations/learning.groups.staff.md): `POST /api/v1/learning/groups/{group}/staff`
- [learning.groups.update — Обучение: Изменить учебную группу](https://eval.su/docs/operations/learning.groups.update.md): `POST /api/v1/learning/groups/{group}/update`
- [learning.incidents.apply — Обучение: Применить компенсацию после инцидента](https://eval.su/docs/operations/learning.incidents.apply.md): `POST /api/v1/learning/incidents/{incident}/compensation-apply`
- [learning.incidents.create — Обучение: Зарегистрировать учебный инцидент](https://eval.su/docs/operations/learning.incidents.create.md): `POST /api/v1/learning/runs/{run}/incidents`
- [learning.incidents.get — Обучение: Влияние учебного инцидента](https://eval.su/docs/operations/learning.incidents.get.md): `GET /api/v1/learning/incidents/{incident}`
- [learning.incidents.list — Обучение: Инциденты учебного потока](https://eval.su/docs/operations/learning.incidents.list.md): `GET /api/v1/learning/runs/{run}/incidents`
- [learning.incidents.preview — Обучение: Проверить компенсацию сроков](https://eval.su/docs/operations/learning.incidents.preview.md): `POST /api/v1/learning/incidents/{incident}/compensation-preview`
- [learning.library.insert — Обучение: Вставить редакцию из библиотеки](https://eval.su/docs/operations/learning.library.insert.md): `POST /api/v1/learning/courses/{course}/library/{item}/insert`
- [learning.library.list — Обучение: Библиотека заданий](https://eval.su/docs/operations/learning.library.list.md): `GET /api/v1/learning/library`
- [learning.library.save — Обучение: Сохранить задание в библиотеку](https://eval.su/docs/operations/learning.library.save.md): `POST /api/v1/learning/courses/{course}/library`
- [learning.media.get — Обучение: Позиция учебного видео](https://eval.su/docs/operations/learning.media.get.md): `GET /api/v1/learning/enrollments/{enrollment}/media-progress`
- [learning.media.save — Обучение: Сохранить позицию учебного видео](https://eval.su/docs/operations/learning.media.save.md): `PUT /api/v1/learning/enrollments/{enrollment}/steps/{node}/media-progress`
- [learning.notification_preferences.get — Обучение: Настройки учебных уведомлений](https://eval.su/docs/operations/learning.notification_preferences.get.md): `GET /api/v1/learning/notification-preferences`
- [learning.notification_preferences.update — Обучение: Сохранить настройки учебных уведомлений](https://eval.su/docs/operations/learning.notification_preferences.update.md): `PUT /api/v1/learning/notification-preferences`
- [learning.notifications.list — Обучение: напоминания](https://eval.su/docs/operations/learning.notifications.list.md): `GET /api/v1/learning/notifications`
- [learning.notifications.read — Обучение: прочитать напоминание](https://eval.su/docs/operations/learning.notifications.read.md): `POST /api/v1/learning/notifications/{notification}/read`
- [learning.ownership.accept — Обучение: принять владение курсом](https://eval.su/docs/operations/learning.ownership.accept.md): `POST /api/v1/learning/ownership/{invitation}/accept`
- [learning.ownership.cancel — Обучение: отменить передачу курса](https://eval.su/docs/operations/learning.ownership.cancel.md): `POST /api/v1/learning/ownership/{invitation}/cancel`
- [learning.ownership.candidates — Обучение: найти нового владельца](https://eval.su/docs/operations/learning.ownership.candidates.md): `GET /api/v1/learning/courses/{course}/ownership/candidates`
- [learning.ownership.invitations — Обучение: передача владения](https://eval.su/docs/operations/learning.ownership.invitations.md): `GET /api/v1/learning/ownership/invitations`
- [learning.ownership.invite — Обучение: предложить передачу курса](https://eval.su/docs/operations/learning.ownership.invite.md): `POST /api/v1/learning/courses/{course}/ownership/invite`
- [learning.ownership.reject — Обучение: отклонить передачу курса](https://eval.su/docs/operations/learning.ownership.reject.md): `POST /api/v1/learning/ownership/{invitation}/reject`
- [learning.portfolio.create — Обучение: черновик учебного кейса](https://eval.su/docs/operations/learning.portfolio.create.md): `POST /api/v1/learning/enrollments/{enrollment}/portfolio-drafts`
- [learning.reviews.assignment — Обучение: ответственный за проверку](https://eval.su/docs/operations/learning.reviews.assignment.md): `GET /api/v1/learning/submissions/{submission}/review-assignment`
- [learning.reviews.assignment_list — Обучение: очередь назначений проверяющих](https://eval.su/docs/operations/learning.reviews.assignment_list.md): `GET /api/v1/learning/courses/{course}/review-assignments`
- [learning.reviews.claim — Обучение: взять работу на проверку](https://eval.su/docs/operations/learning.reviews.claim.md): `POST /api/v1/learning/submissions/{submission}/claim`
- [learning.reviews.decide — Обучение: проверить работу](https://eval.su/docs/operations/learning.reviews.decide.md): `POST /api/v1/learning/submissions/{submission}/review`
- [learning.reviews.draft — Обучение: сохранить черновую рубрику](https://eval.su/docs/operations/learning.reviews.draft.md): `PUT /api/v1/learning/submissions/{submission}/review-draft`
- [learning.reviews.list — Обучение: очередь проверки](https://eval.su/docs/operations/learning.reviews.list.md): `GET /api/v1/learning/courses/{course}/reviews`
- [learning.reviews.reassign — Обучение: переназначить проверяющего](https://eval.su/docs/operations/learning.reviews.reassign.md): `POST /api/v1/learning/submissions/{submission}/reassign`
- [learning.reviews.release — Обучение: освободить проверку](https://eval.su/docs/operations/learning.reviews.release.md): `POST /api/v1/learning/submissions/{submission}/release`
- [learning.reviews.report_issue — Обучение: ошибка задания куратору](https://eval.su/docs/operations/learning.reviews.report_issue.md): `POST /api/v1/learning/submissions/{submission}/report-issue`
- [learning.reviews.workspace — Обучение: рабочая область проверки](https://eval.su/docs/operations/learning.reviews.workspace.md): `GET /api/v1/learning/submissions/{submission}/review-workspace`
- [learning.runs.archive — Обучение: Архивировать поток](https://eval.su/docs/operations/learning.runs.archive.md): `POST /api/v1/learning/runs/{run}/archive`
- [learning.runs.cancel — Обучение: Отменить поток](https://eval.su/docs/operations/learning.runs.cancel.md): `POST /api/v1/learning/runs/{run}/cancel`
- [learning.runs.create — Обучение: открыть поток](https://eval.su/docs/operations/learning.runs.create.md): `POST /api/v1/learning/courses/{course}/runs`
- [learning.runs.finish — Обучение: Завершить поток](https://eval.su/docs/operations/learning.runs.finish.md): `POST /api/v1/learning/runs/{run}/finish`
- [learning.runs.list — Обучение: потоки курса](https://eval.su/docs/operations/learning.runs.list.md): `GET /api/v1/learning/courses/{course}/runs`
- [learning.runs.update — Обучение: изменить поток](https://eval.su/docs/operations/learning.runs.update.md): `PATCH /api/v1/learning/runs/{run}`
- [learning.schedule.apply — Обучение: Применить подтверждённые учебные сроки](https://eval.su/docs/operations/learning.schedule.apply.md): `POST /api/v1/learning/schedule-previews/{preview}/apply`
- [learning.schedule.preview — Обучение: Проверить изменение учебных сроков](https://eval.su/docs/operations/learning.schedule.preview.md): `POST /api/v1/learning/runs/{run}/schedule-preview`
- [learning.seats.accept — Обучение: Принять место на курсе](https://eval.su/docs/operations/learning.seats.accept.md): `POST /api/v1/learning/enrollments/{enrollment}/accept-seat`
- [learning.seats.decline — Обучение: Отказаться от резервирования места](https://eval.su/docs/operations/learning.seats.decline.md): `POST /api/v1/learning/enrollments/{enrollment}/decline-seat`
- [learning.staff.accept — Обучение: принять учебную роль](https://eval.su/docs/operations/learning.staff.accept.md): `POST /api/v1/learning/staff/{assignment}/accept`
- [learning.staff.assign — Обучение: пригласить преподавателя](https://eval.su/docs/operations/learning.staff.assign.md): `POST /api/v1/learning/courses/{course}/staff`
- [learning.staff.candidates — Обучение: найти участника команды](https://eval.su/docs/operations/learning.staff.candidates.md): `GET /api/v1/learning/courses/{course}/staff/candidates`
- [learning.staff.email_accept — Обучение: принять приглашение команды](https://eval.su/docs/operations/learning.staff.email_accept.md): `POST /api/v1/learning/staff/email-invitations/{invitation}/accept`
- [learning.staff.email_get — Обучение: открыть приглашение команды](https://eval.su/docs/operations/learning.staff.email_get.md): `GET /api/v1/learning/staff/email-invitations/{invitation}`
- [learning.staff.email_invitations — Обучение: входящие приглашения команды](https://eval.su/docs/operations/learning.staff.email_invitations.md): `GET /api/v1/learning/staff/email-invitations`
- [learning.staff.email_invite — Обучение: пригласить участника команды по почте](https://eval.su/docs/operations/learning.staff.email_invite.md): `POST /api/v1/learning/courses/{course}/staff/email-invitations`
- [learning.staff.email_list — Обучение: отправленные приглашения команды](https://eval.su/docs/operations/learning.staff.email_list.md): `GET /api/v1/learning/courses/{course}/staff/email-invitations`
- [learning.staff.email_reject — Обучение: отклонить приглашение команды](https://eval.su/docs/operations/learning.staff.email_reject.md): `POST /api/v1/learning/staff/email-invitations/{invitation}/reject`
- [learning.staff.email_revoke — Обучение: отозвать приглашение команды](https://eval.su/docs/operations/learning.staff.email_revoke.md): `POST /api/v1/learning/staff/email-invitations/{invitation}/revoke`
- [learning.staff.invitations — Обучение: мои приглашения](https://eval.su/docs/operations/learning.staff.invitations.md): `GET /api/v1/learning/staff/invitations`
- [learning.staff.list — Обучение: команда курса](https://eval.su/docs/operations/learning.staff.list.md): `GET /api/v1/learning/courses/{course}/staff`
- [learning.staff.permissions — Обучение: изменить право приглашать преподавателей](https://eval.su/docs/operations/learning.staff.permissions.md): `POST /api/v1/learning/courses/{course}/staff/{assignment}/permissions`
- [learning.staff.revoke — Обучение: отозвать роль](https://eval.su/docs/operations/learning.staff.revoke.md): `POST /api/v1/learning/courses/{course}/staff/revoke`
- [learning.steps.acknowledge — Обучение: отметить ознакомление](https://eval.su/docs/operations/learning.steps.acknowledge.md): `POST /api/v1/learning/enrollments/{enrollment}/steps/{node}/acknowledge`
- [learning.steps.get — Обучение: открыть выбранный шаг](https://eval.su/docs/operations/learning.steps.get.md): `GET /api/v1/learning/enrollments/{enrollment}/steps/{node}`
- [learning.submissions.create — Обучение: сдать работу](https://eval.su/docs/operations/learning.submissions.create.md): `POST /api/v1/learning/enrollments/{enrollment}/steps/{node}/submit`
- [learning.submissions.get — Обучение: результат попытки](https://eval.su/docs/operations/learning.submissions.get.md): `GET /api/v1/learning/submissions/{submission}`
- [learning.submissions.history — Обучение: история попыток шага](https://eval.su/docs/operations/learning.submissions.history.md): `GET /api/v1/learning/enrollments/{enrollment}/steps/{node}/submissions`
- [learning.teaching.get — Обучение: рабочая область преподавателя](https://eval.su/docs/operations/learning.teaching.get.md): `GET /api/v1/learning/teaching/courses/{course}`
- [learning.teaching.list — Обучение: преподавание](https://eval.su/docs/operations/learning.teaching.list.md): `GET /api/v1/learning/teaching/courses`
- [learning.transfers.apply — Обучение: Подтвердить перенос обучения](https://eval.su/docs/operations/learning.transfers.apply.md): `POST /api/v1/learning/courses/{course}/transfers/{transfer}/apply`
- [learning.transfers.preview — Обучение: Сравнить условия переноса обучения](https://eval.su/docs/operations/learning.transfers.preview.md): `POST /api/v1/learning/courses/{course}/transfers/preview`
- [learning.variants.issue — Обучение: Получить постоянный вариант задания](https://eval.su/docs/operations/learning.variants.issue.md): `POST /api/v1/learning/enrollments/{enrollment}/steps/{node}/variant`
- [learning.versions.list — Обучение: Версии программы](https://eval.su/docs/operations/learning.versions.list.md): `GET /api/v1/learning/courses/{course}/versions`
- [learning.checkers.list — Обучение: версии Python-проверок](https://eval.su/docs/operations/learning.checkers.list.md): `GET /api/v1/learning/courses/{course}/checkers`
- [learning.checkers.get — Обучение: открыть Python-проверку](https://eval.su/docs/operations/learning.checkers.get.md): `GET /api/v1/learning/courses/{course}/checkers/{checker}`
- [learning.checkers.create — Обучение: создать Python-проверку](https://eval.su/docs/operations/learning.checkers.create.md): `POST /api/v1/learning/courses/{course}/checkers`
- [learning.checkers.preflight — Обучение: тестировать проверку в изоляции](https://eval.su/docs/operations/learning.checkers.preflight.md): `POST /api/v1/learning/courses/{course}/checkers/{checker}/preflight`
- [learning.preflights.get — Обучение: результат предварительной проверки](https://eval.su/docs/operations/learning.preflights.get.md): `GET /api/v1/learning/courses/{course}/preflights/{job}`
- [learning.regrades.candidates — Обучение: работы для перепроверки](https://eval.su/docs/operations/learning.regrades.candidates.md): `GET /api/v1/learning/courses/{course}/regrade-candidates`
- [learning.regrades.create — Обучение: предварительная перепроверка](https://eval.su/docs/operations/learning.regrades.create.md): `POST /api/v1/learning/courses/{course}/regrades`
- [learning.regrades.get — Обучение: влияние перепроверки](https://eval.su/docs/operations/learning.regrades.get.md): `GET /api/v1/learning/courses/{course}/regrades/{regrade}`
- [learning.regrades.apply — Обучение: применить перепроверку](https://eval.su/docs/operations/learning.regrades.apply.md): `POST /api/v1/learning/courses/{course}/regrades/{regrade}/apply`
- [learning.checkers.control_history — Обучение: История остановок и возобновлений проверки](https://eval.su/docs/operations/learning.checkers.control_history.md): `GET /api/v1/learning/courses/{course}/checkers/{checker}/control-history`
- [learning.grading.diagnostics — Обучение: Приватная диагностика проверяющей программы](https://eval.su/docs/operations/learning.grading.diagnostics.md): `GET /api/v1/learning/courses/{course}/grading-jobs/{job}/diagnostics`
- [learning.grading.usage — Обучение: Ресурсы автоматической проверки](https://eval.su/docs/operations/learning.grading.usage.md): `GET /api/v1/learning/courses/{course}/grading-usage`
- [learning.regrade_plans.get — Обучение: Результаты массовой перепроверки](https://eval.su/docs/operations/learning.regrade_plans.get.md): `GET /api/v1/learning/courses/{course}/regrade-plans/{plan}`
- [learning.generated_variants.state — Обучение: Состояние варианта](https://eval.su/docs/operations/learning.generated_variants.state.md): `GET /api/v1/learning/enrollments/{enrollment}/steps/{node}/generated-variants`
- [learning.generated_variants.get — Обучение: Получить подготовленный вариант](https://eval.su/docs/operations/learning.generated_variants.get.md): `GET /api/v1/learning/generated-variants/{job}`
- [learning.sample_runs.get — Обучение: Результат пробного запуска](https://eval.su/docs/operations/learning.sample_runs.get.md): `GET /api/v1/learning/sample-runs/{job}`
- [learning.checkers.resume — Обучение: Возобновить автоматическую проверку](https://eval.su/docs/operations/learning.checkers.resume.md): `POST /api/v1/learning/courses/{course}/checkers/{checker}/resume`
- [learning.checkers.suspend — Обучение: Приостановить автоматическую проверку](https://eval.su/docs/operations/learning.checkers.suspend.md): `POST /api/v1/learning/courses/{course}/checkers/{checker}/suspend`
- [learning.regrade_plans.create — Обучение: Подготовить массовую перепроверку](https://eval.su/docs/operations/learning.regrade_plans.create.md): `POST /api/v1/learning/courses/{course}/regrade-plans`
- [learning.regrade_plans.commit — Обучение: Подтвердить массовую перепроверку](https://eval.su/docs/operations/learning.regrade_plans.commit.md): `POST /api/v1/learning/courses/{course}/regrade-plans/{plan}/commit`
- [learning.generated_variants.create — Обучение: Подготовить воспроизводимый вариант](https://eval.su/docs/operations/learning.generated_variants.create.md): `POST /api/v1/learning/enrollments/{enrollment}/steps/{node}/generated-variants`
- [learning.sample_runs.create — Обучение: Пробный запуск кода](https://eval.su/docs/operations/learning.sample_runs.create.md): `POST /api/v1/learning/enrollments/{enrollment}/steps/{node}/sample-runs`
- [learning.submissions.cancel — Обучение: Отменить проверку](https://eval.su/docs/operations/learning.submissions.cancel.md): `POST /api/v1/learning/submissions/{submission}/cancel`

[Готовые рецепты: импорт статей, Telegram, фотографии и ИИ](https://eval.su/docs/examples/recipes.md).
