Career

API платформы

Все страницы сайта получают данные через эти 68 методов. Ответы — JSON вида {"ok": true, …}, ошибки — {"ok": false, "message": "…"} с кодом 4xx. Изменяющие запросы требуют cookie сессии и заголовок X-CSRFToken.

Вход и регистрация

POST
/api/v1/auth/signup/
Регистрация кандидата или компании. Сразу выполняет вход
все
POST
/api/v1/auth/signin/
Вход по имени пользователя и паролю
все
POST
/api/v1/auth/signout/
Выход из аккаунта
все
GET
/api/v1/auth/me/
Текущий аккаунт: имя, роль, блокировка. Без входа — account: null
все

Кандидаты

PATCH
/api/v1/candidates/<slug:username>/update/
Изменение своего профиля: имя, контакты, о себе, навыки, ссылки
вход
POST
/api/v1/candidates/<slug:username>/avatar/
Загрузка фото профиля (JPG, PNG, WebP, GIF до 5 МБ)
вход
GET
/api/v1/candidates/<slug:username>/articles/
Опубликованные статьи кандидата
все
GET
/api/v1/candidates/<slug:username>/contests/
Участия кандидата в конкурсах для публичного профиля
все
GET
/api/v1/candidates/<slug:username>/
Публичный профиль кандидата. Контакты — только ему самому и подтверждённым компаниям
все

Статьи

GET
/api/v1/articles/catalog/
Каталог опубликованных статей
все
POST
/api/v1/articles/<int:article_id>/vote/
Голос за статью: +1 или −1, повторный голос снимает
вход
GET
/api/v1/articles/my/
Свои статьи, включая черновики
вход
POST
/api/v1/articles/create/
Новый черновик статьи
кандидат
PATCH
/api/v1/articles/<int:article_id>/
Сохранение своей статьи: заголовок, текст, теги, обложка
вход
POST
/api/v1/articles/<int:article_id>/publish/
Публикация своей статьи
вход
DELETE
/api/v1/articles/<int:article_id>/delete/
Удаление своей статьи
вход

Жалобы

POST
/api/v1/reports/
Жалоба на статью, тест, конкурс или пользователя
вход

Компании

GET
/api/v1/companies/
Каталог подтверждённых компаний
все
GET
/api/v1/companies/my-ratings/
Оценки, которые кандидат поставил компаниям
вход
GET
/api/v1/companies/<slug:username>/
Публичный профиль компании
все
POST
/api/v1/companies/<slug:username>/profile/
Изменение своего профиля компании: описание, контакты, логотип
компания
POST
/api/v1/companies/<slug:username>/verification/
Загрузка регистрационного документа (PDF) на проверку
компания
GET
/api/v1/companies/<slug:username>/tests/
Тесты компании. Черновики видит только она сама
все
GET
/api/v1/companies/<slug:username>/statistics/
Сводная статистика своей компании
компания
POST
/api/v1/companies/<slug:username>/rate/
Оценка компании от 1 до 5 после участия в её конкурсе
кандидат
GET
/api/v1/companies/<slug:username>/contests/
Опубликованные конкурсы компании
все

Тесты

GET
/api/v1/tests/
Свои тесты, включая черновики
вход
POST
/api/v1/tests/create/
Новый тест
кандидат, компания
GET
/api/v1/tests/catalog/
Каталог опубликованных тестов
все
GET
/api/v1/tests/my-attempts/
Свои прохождения тестов, активность по дням и серия
вход
GETPUTDELETE
/api/v1/tests/<int:test_id>/
Свой тест целиком: чтение, сохранение (PUT), удаление
вход
POST
/api/v1/tests/<int:test_id>/publish/
Публикация теста: проверяет, что у каждого вопроса есть верный ответ
вход
GET
/api/v1/tests/<int:test_id>/statistics/
Как проходят свой тест: баллы, доля справившихся, сравнение с площадкой
вход
POST
/api/v1/tests/pages/<int:page_id>/run/
Проверка решения задачи на код на всех тест-кейсах в изолированном контейнере
вход
GET
/api/v1/tests/<int:test_id>/view/
Тест для прохождения — без правильных ответов
все
POST
/api/v1/tests/<int:test_id>/submit/
Отправка ответов и подсчёт результата
все

Конкурсы

GET
/api/v1/contests/company/
Конкурсы своей компании со статистикой
компания
POST
/api/v1/contests/
Новый конкурс
компания
GET
/api/v1/contests/catalog/
Каталог опубликованных конкурсов
все
GET
/api/v1/contests/user-history/
Свои участия в конкурсах
вход
GET
/api/v1/contests/my-submissions/<int:sub_id>/
Своё решение и вердикт компании
вход
GETPUTDELETE
/api/v1/contests/<int:contest_id>/
Конкурс: чтение всем, сохранение (PUT) и удаление — только своей компании
все
POST
/api/v1/contests/<int:contest_id>/publish/
Публикация конкурса: нужны название, кейс и срок в будущем
компания
POST
/api/v1/contests/<int:contest_id>/attachments/
Загрузка стартового файла к конкурсу (до 25 МБ)
компания
DELETE
/api/v1/contests/<int:contest_id>/attachments/<int:attachment_id>/
Удаление стартового файла
компания
GET
/api/v1/contests/<int:contest_id>/submissions/
Решения участников своего конкурса
компания
PATCH
/api/v1/contests/<int:contest_id>/submissions/<int:sub_id>/
Решение компании по работе: принять или отклонить
компания
POST
/api/v1/contests/<int:contest_id>/submissions/<int:sub_id>/like/
Отметить работу как понравившуюся или снять отметку
компания
POST
/api/v1/contests/<int:contest_id>/submissions/<int:sub_id>/winner/
Назначить работу победителем или снять
компания
GET
/api/v1/contests/<int:contest_id>/statistics/
Воронка участия и решения по дням
компания
POST
/api/v1/contests/<int:contest_id>/submit/
Отправка решения: файл, ссылка или текст — как задано в конкурсе
кандидат
GET
/api/v1/contests/<int:contest_id>/my-submissions/
Свои решения по конкурсу
вход

Модерация

GET
/api/v1/admin/overview/
Сводка для панели модератора
модератор
GET
/api/v1/admin/verifications/
Заявки компаний на проверку
модератор
POST
/api/v1/admin/verifications/<slug:username>/approve/
Одобрить компанию
модератор
POST
/api/v1/admin/verifications/<slug:username>/reject/
Отклонить заявку с причиной
модератор
GET
/api/v1/admin/users/
Пользователи с поиском и фильтром
модератор
POST
/api/v1/admin/users/<slug:username>/ban/
Заблокировать на срок или навсегда
модератор
POST
/api/v1/admin/users/<slug:username>/unban/
Снять блокировку
модератор
GET
/api/v1/admin/reports/
Очередь жалоб
модератор
POST
/api/v1/admin/reports/<int:report_id>/takedown/
Снять материал по жалобе
модератор
POST
/api/v1/admin/reports/<int:report_id>/resolve/
Закрыть жалобу как рассмотренную
модератор
POST
/api/v1/admin/reports/<int:report_id>/dismiss/
Отклонить жалобу
модератор
POST
/api/v1/admin/content/article/<int:article_id>/delete/
Удалить статью
модератор
POST
/api/v1/admin/content/contest/<int:contest_id>/delete/
Удалить конкурс
модератор
POST
/api/v1/admin/content/test/<int:test_id>/delete/
Удалить тест
модератор
GET
/api/v1/admin/users/<slug:username>/content/
Материалы пользователя по видам
модератор
POST
/api/v1/admin/users/<slug:username>/purge/
Удалить материалы пользователя выбранных видов
модератор