clients.pythonclients.typescriptclients.javascriptclients.javaclients.cppclients.phpauth.loginReturns a token on success. Throws UnauthorizedError on failure.
CredentialsInCredentialsOutauth.logoutauth.loginExamReturns a token on success. Throws UnauthorizedError on failure.
ExamCredentialsInCredentialsOutauth.getReadyExamsValidates user credentials and returns the list of ready exams. Does not create a session or return a token.
CredentialsInReadyExamauth.loginWithUsernameReturns a token on success. Throws UnauthorizedError on failure. Created for backward compatibility, do not use.
CredentialsWithUsernameInCredentialsOutauth.registerCreates a new user with the provided profile data. Requires a valid reCAPTCHA v3 token.
RegisterInauth.requestPasswordResetSends a reset link to the user if the email is registered. Always succeeds silently for unknown emails. Requires a valid reCAPTCHA v3 token.
RequestPasswordResetInauth.confirmPasswordRequestValidates the reset code and sets a new password. Requires a valid reCAPTCHA v3 token.
ConfirmPasswordRequestInauth.requestUnregistrationVerifies the current password and sends an unregistration confirmation link. Requires authentication and a valid reCAPTCHA v3 token.
RequestUnregistrationInauth.confirmUnregistrationValidates the unregistration code, removes the account, unlinks course enrollments, and invalidates all sessions. Requires authentication and a valid reCAPTCHA v3 token. Warning: This action is irreversible!!!
ConfirmUnregistrationInauth.requestChangeEmailVerifies the current password and sends a confirmation link to the new email address. Requires authentication and a valid reCAPTCHA v3 token.
RequestChangeEmailInauth.confirmChangeEmailValidates the email change code, updates the account email, migrates course enrollments, and invalidates all sessions. Requires authentication and a valid reCAPTCHA v3 token.
ConfirmUnregistrationInmisc.getApiVersionApiVersionmisc.getRequestInformationRequestInformationmisc.getFortunemisc.getTimeTimemisc.getHomepageStatsHomepageStatsmisc.getLogomisc.getAvatarPacksAvatars are used in exams and contests to identify students or participants.
misc.getExamIconsExam icon are used in exams and contests to identify problems.
TagsDictmisc.getColorsColor mappings may be used to colorize keys in the frontends. Color names are as defined in https://github.com/timoxley/colornames
ColorMappingmisc.getHexColorsColor mappings may be used to colorize keys in the frontends.
ColorMappingmisc.getDemosForCompilertables.getReturns all compilers, countries, drivers, languages, proglangs, and verdicts in a single request. This data does not change often, so you should only request it once per session.
AllTablestables.getLanguagesReturns all languages as a dictionary of objects, indexed by id.
Languagetables.getCountriesReturns all countries as a dictionary of objects, indexed by id.
Countrytables.getCompilersReturns all compilers as a dictionary of objects, indexed by id.
Compilertables.getDriversReturns all drivers as a dictionary of objects, indexed by id.
Drivertables.getVerdictsReturns all verdicts as a dictionary of objects, indexed by id.
Verdicttables.getProglangsReturns all proglangs (porgramming languages) as a dictionary of objects, indexed by id.
Proglangtables.getTimezonesReturns all timezones as a dictionary of objects, indexed by id.
Timezonecourses.indexPublicReturns all courses marked as public, indexed by course key (`username:course_nm`).
PublicCoursesproblems.getAllAbstractProblemsIncludes problems.
AbstractProblemproblems.getAllAbstractProblemsRawBla bla
AbstractProblemproblems.getAbstractProblemsIncludes problems.
AbstractProblemproblems.getAbstractProblemsInListIncludes problems.
AbstractProblemproblems.getAbstractProblemIncludes problems
AbstractProblemproblems.getAbstractProblemSupplIncludes accepted compilers and accepted proglangs
AbstractProblemSupplproblems.getManyAbstractProblemSupplIncludes accepted compilers and accepted proglangs. Keys are `problem_nm`s.
AbstractProblemSupplsproblems.getProblemIncludes abstract problem.
Problemproblems.getProblemSupplIncludes accepted compilers, accepted proglangs, official solutions checks and handler specifications
ProblemSupplproblems.getSampleTestcasesTestcaseproblems.getPublicTestcasesPublic testcases are like sample testcases, but are not meant to be shown in the problem statatement, because of their long length.
Testcaseproblems.getZipStatementproblems.getPdfStatementproblems.getHtmlStatementproblems.getTextStatementproblems.getMarkdownStatementproblems.getShortHtmlStatementproblems.getShortTextStatementproblems.getShortMarkdownStatementproblems.getTemplatesproblems.getTemplate| problem_id | string |
| template | string |
problems.semanticSearch| query | string |
| limit | number |
SearchResultsproblems.fullTextSearch| query | string |
| limit | number |
SearchResultsstudent.keys.getAllKeysstudent.keys.getProblemsstudent.keys.getEnrolledCoursesstudent.keys.getAvailableCoursesstudent.keys.getListsstudent.profile.getIn case of exams, some fields are not nullified to avoid cheating.
Profilestudent.profile.getAvatarstudent.profile.updateNewProfilestudent.profile.updateAvatarstudent.profile.updatePasswordReceives the old password and the new one, and changes the password if the old one is correct and the new one strong enough.
NewPasswordstudent.dashboard.getAbsoluteRankingstudent.dashboard.getAllDistributionsAllDistributionsstudent.dashboard.getCompilersDistributionDistributionstudent.dashboard.getDashboardDashboardstudent.dashboard.getHeatmapCalendarHeatmapCalendarstudent.dashboard.getProglangsDistributionDistributionstudent.dashboard.getStatsDistributionstudent.dashboard.getLevelstudent.dashboard.getSubmissionsByHourDistributionstudent.dashboard.getSubmissionsByWeekDayDistributionstudent.dashboard.getVerdictsDistributionDistributionstudent.submissions.indexForAbstractProblemGrouped by problem.
Submissionstudent.submissions.indexForProblemSubmissionstudent.submissions.getForAbstractProblemsFlat array of submissions from newer to older.
Submissionstudent.submissions.getAllFlat array of submissions from newer to older.
Submissionstudent.submissions.getRangeFlat array of submissions from newer to older for a given range of dates.
DateRange2Submissionstudent.submissions.submit| problem_id | string |
| compiler_id | string |
| code | string |
| annotation | string |
student.submissions.submitFullNewSubmissionInNewSubmissionOutstudent.submissions.getGetGameResultInSubmissionstudent.submissions.getCodeAsB64GetGameResultInstudent.submissions.getCompilationErrorsGetGameResultInCompilationErrorsstudent.submissions.getCodeMetricsGetGameResultInCodeMetricsstudent.submissions.getScoringGetGameResultInScoringstudent.submissions.getAwardsGetGameResultInstudent.submissions.getAnalysisGetGameResultInSubmissionAnalysisstudent.submissions.getTestcaseAnalysis| problem_id | string |
| submission_id | string |
| testcase | string |
TestcaseAnalysisstudent.submissions.getCircuitModulesGetGameResultInstudent.submissions.getCircuitTracesJsonGetGameResultInSettingsstudent.submissions.getCircuitTracesSvgGetGameResultInstudent.submissions.getGameResultGetGameResultInGetGameResultOutstudent.submissions.getGameOutputGetGameOutputInstudent.submissions.getDebugInformationGetGameResultInDebugInformationstudent.courses.indexAvailableBriefCoursestudent.courses.indexEnrolledBriefCoursestudent.courses.getAvailableIncludes owner and lists.
Coursestudent.courses.getEnrolledIncludes owner and lists.
Coursestudent.courses.enrollstudent.courses.unenrollstudent.courses.getArchivedKeysstudent.courses.archivestudent.courses.unArchivestudent.lists.getAllBriefListstudent.lists.getIncludes items, owner.
Liststudent.lists.getManyIncludes items, owner. Keys are `list_key`s.
Liststudent.exam.getReadyExamsAn exam is ready if the current time is between its expected start time minus two days and its expected end time plus two days. Exams are sorted by their distance to the current time and by title order in case of ties.
ReadyExamstudent.exam.getRunningExamstudent.exam.getDocumentRunningExamDocumentstudent.exam.getDocumentPdfstudent.exam.getRankingRankingstudent.exams.getAllBriefExamsstudent.exams.getExamstudent.statuses.getAllAbstractStatusstudent.statuses.getForAbstractProblemAbstractStatusstudent.statuses.getForProblemStatusstudent.awards.getAllBriefAwardstudent.awards.getAwardstudent.settings.getAllSettingsstudent.settings.getstudent.settings.setSettingtutor.courses.getCoursesKeysReturns courses where the user is enrolled as a tutor.
tutor.courses.getEnrolledStudentsReturns name and email for each student enrolled in the given course. Gated to courses the user can tutorize.
EnrolledStudenttutor.profile.getReturns the public profile for the given email. Gated to students enrolled in courses the user can tutorize.
PublicProfiletutor.profile.getAvatarReturns the avatar for the given email. Gated to students enrolled in courses the user can tutorize.
tutor.statuses.getAll| course_key | string |
string |
AbstractStatustutor.statuses.getForAbstractProblem| course_key | string |
string | |
| problem_nm | string |
AbstractStatustutor.statuses.getForProblem| course_key | string |
string | |
| problem_id | string |
Statustutor.submissions.indexForAbstractProblem| course_key | string |
string | |
| problem_nm | string |
TutorSubmissiontutor.submissions.indexForProblem| course_key | string |
string | |
| problem_id | string |
TutorSubmissiontutor.submissions.getForAbstractProblems| course_key | string |
string | |
| problem_nms | string |
TutorSubmissiontutor.submissions.getAll| course_key | string |
string |
TutorSubmissiontutor.submissions.get| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
TutorSubmissiontutor.submissions.getCodeAsB64| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
tutor.submissions.getCompilationErrors| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
CompilationErrorstutor.submissions.getCodeMetrics| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
CodeMetricstutor.submissions.getScoring| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
Scoringtutor.submissions.getAwards| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
tutor.submissions.getAnalysis| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
SubmissionAnalysistutor.submissions.getTestcaseAnalysis| course_key | string |
string | |
| problem_id | string |
| submission_id | string |
| testcase | string |
TestcaseAnalysisinstructor.documents.indexDocumentinstructor.documents.getThe file content is not included in the response.
Documentinstructor.documents.getPdfinstructor.documents.getZipinstructor.documents.createDocumentCreationinstructor.documents.updateDocumentCreationinstructor.documents.removeinstructor.lists.indexInstructorBriefListinstructor.lists.getInstructorListinstructor.lists.createInstructorListCreationinstructor.lists.updateInstructorListCreationinstructor.lists.removeinstructor.lists.getArchivedAt some point, endpoints related to archiving lists should change as the archive bit will be an attribute of each list.
instructor.lists.archiveinstructor.lists.unarchiveinstructor.courses.indexInstructorBriefCourseinstructor.courses.getInstructorCourseinstructor.courses.createOnly invited students and tutors are taken into account. Enrolled and pending students and tutors are ignored, as these are managed by the system.
InstructorCourseCreationinstructor.courses.updateOnly invited students and tutors are taken into account. Enrolled and pending students and tutors are ignored, as these are managed by the system.
InstructorCourseUpdateinstructor.courses.updateIconInstructorCourseUpdateIconInputinstructor.courses.removeA course should not be deleted. Ask a system administrator to remove it if you really need it.
instructor.courses.sendInviteToStudentsPlease do not abuse.
instructor.courses.sendInviteToTutorsPlease do not abuse.
instructor.courses.getCourseSubmissionsReturns all submissions for all problems in all lists of the course, from all enrolled students. Each submission includes the student user uid, email, time, problem id, verdict, compiler id, and programming language.
CourseSubmissioninstructor.courses.getStudentProfilesStudentProfileinstructor.courses.getTutorProfilesStudentProfileinstructor.courses.getArchivedAt some point, endpoints related to archiving courses should change as the archive bit will be an attribute of each course.
instructor.courses.archiveinstructor.courses.unarchiveinstructor.exams.indexInstructorBriefExaminstructor.exams.getInstructorExaminstructor.exams.getDocumentsRunningExamDocumentinstructor.exams.getProblemsInstructorExamProbleminstructor.exams.getStudentsInstructorExamStudentinstructor.exams.getStudent| exam_nm | string |
string |
InstructorExamStudentinstructor.exams.getSubmissionsMeant for real-time streaming of submissions, most instructors will possibly prefer getSubmissionsPack.
| exam_nm | string |
| options | InstructorExamSubmissionsOptions |
WebStreaminstructor.exams.getSubmissionsPackThis endpoint will prepare the pack in the background and return a link to download it later. Packs take some time to be prepared, and are deleted after 24 hours. This is the preferred endpoint for most instructors, as it is simpler to use than getSubmissions.
| exam_nm | string |
| options | InstructorExamSubmissionsOptions |
Packinstructor.exams.getStatisticsExamStatisticsinstructor.exams.createInstructorExamCreationinstructor.exams.updateInstructorExamUpdateinstructor.exams.updateDocuments| exam_nm | string |
| document_nms | array of string |
instructor.exams.updateCompilers| exam_nm | string |
| compiler_ids | array of string |
instructor.exams.updateProblems| exam_nm | string |
| problems | array of InstructorExamProblem |
instructor.exams.updateStudents| exam_nm | string |
| students | array of InstructorExamStudent |
instructor.exams.addStudents| exam_nm | string |
| students | array of InstructorExamStudent |
instructor.exams.removeStudents| exam_nm | string |
| emails | array of string |
instructor.exams.removeNote: An exam can only be deleted if it has not started.
instructor.exams.getArchivedAt some point, endpoints related to archiving exams should change as the archive bit will be an attribute of each exam.
instructor.exams.archiveinstructor.exams.unarchiveinstructor.exams.getRankingUnder development.
Rankinginstructor.problems.getOwnProblemsinstructor.problems.setSharingSettingsWithout a passcode, the problem is visible to all users. With a passcode, the problem is only visible to users with the correct passcode. With shared testcases, the testcases are shared with instructors. With shared solutions, the solutions are shared with instructors.
SharingSettingsinstructor.problems.getSharingSettingsSharingSettingsinstructor.problems.getAllSharingSettingsSharingSettingsinstructor.problems.getAlertsProblemAlertsinstructor.problems.getAllAlertsProblemAlertsinstructor.problems.shareWithShareWithInpinstructor.problems.setDeprecationIf the reason is null or empty, the problem is undeprecated.
Deprecationinstructor.problems.getProblemPopularityBucketsThe buckets are sorted by the number of problems in each bucket by total number of submissions. The data is refreshed every hour.
ProblemPopularityBucketEntryinstructor.problems.getAnonymousSubmissionsThis function is useful to produce statistics about the submissions for an abstract problem. The user ids are anonymized using a nonce.
ProblemAnonymousSubmissioninstructor.problems.downloadinstructor.problems.getAllTestcasesPermission is granted to admins, the problem owner, or any instructor if testcases are shared.
Testcaseinstructor.problems.getSolutionsPermission is granted to admins and instructors who own the problem.
instructor.problems.getSolutionAsB64Permission is granted to admins and instructors who own the problem.
| problem_id | string |
| proglang | string |
instructor.problems.getSolutionAsFilePermission is granted to admins and instructors who own the problem.
| problem_id | string |
| proglang | string |
instructor.problems.createThis endpoint uses terminal web streaming: It returns an id from which the problem feedback is streamed over <URL>/api/webstreams/<id>.
WebStreaminstructor.problems.updateThis endpoint uses terminal web streaming: It returns an id from which the problem feedback is streamed over <URL>/api/webstreams/<id>.
WebStreaminstructor.problems.removeA problem can only be removed if it has few submissions.
instructor.queries.getCourseProblemSubmissionsReturns a list of submissions for a given problem for all students of a given course. Each submission includes the email, time, problem name, problem id, verdict, and IP address. The list is ordered by email and time. Known as ricard01 in the past.
| course_nm | string |
| problem_nm | string |
SubmissionsQueryinstructor.queries.getCourseListSubmissionsReturns a list of submissions for all problems in a given list for all students of a given course. Each submission includes the email, time, problem name, problem id, verdict, and IP address. The list is ordered by email, problem id and time. Known as ricard02 in the past.
| course_nm | string |
| list_nm | string |
SubmissionsQueryinstructor.tags.indexinstructor.tags.getDictTagsDictinstructor.tags.getinstructor.jutgeai.supportedModelsinstructor.jutgeai.supportedImageModelsinstructor.jutgeai.chatSend a conversation (list of system|user|assistant messages) and get the next assistant reply. Models are listed in the `supportedModels` endpoint. This endpoint uses terminal web streaming: It returns an id from which the chat is streamed over <URL>/api/webstreams/<id>. If `addUsage` is true, the usage of the model will be added at the end of the response as a JSON object between `---USAGE_JSON_START---` and `---USAGE_JSON_END---`.
ChatPromptWebStreaminstructor.jutgeai.createImageSome models only accept certain sizes and aspect ratios.
CreateImageInputinstructor.jutgeai.getLlmUsageLlmUsageEntrygames.getGamesgames.getDummygames.getViewergames.submitMatchSubmitMatchInNewSubmissionOutadmin.instructors.getInstructorEntriesadmin.instructors.addstring | |
| username | string |
admin.instructors.removeadmin.courses.getAllAdminCoursesadmin.courses.setPublicAndOfficialAdminCourseSetPublicAndOfficialadmin.users.countadmin.users.createUserCreationadmin.users.removeadmin.users.setPasswordstring | |
| password | string |
| message | string |
admin.users.getProfilesProfileForAdminadmin.users.getAllWithEmailUsersEmailsAndNamesadmin.users.getSpamUsersadmin.users.removeSpamUsersadmin.dashboard.getAllAdminDashboardadmin.dashboard.getDatabasesInfoDatabasesInfoadmin.dashboard.getFreeDiskSpaceFreeDiskSpaceadmin.dashboard.getRecentConnectedUsersRecentConnectedUsersadmin.dashboard.getRecentLoadAveragesRecentLoadAveragesadmin.dashboard.getRecentSubmissionsRecentSubmissionsadmin.dashboard.getSubmissionsHistogramsSubmissionsHistogramsadmin.dashboard.getZombiesZombiesadmin.dashboard.getUpcomingExams| daysBefore | integer |
| daysAfter | integer |
UpcomingExamsadmin.dashboard.getPM2StatusThis endpoint retrieves the status of PM2 processes as reported by `pm2 jlist`.
admin.dashboard.getDockerStatusThis endpoint retrieves the status of docker processes as reported by `docker ps --all`.
admin.queue.getQueueThe `limit` parameter tells the number of submissions to retrieve. The `verdicts` parameter is an array of verdicts to filter the submissions. If no verdicts are provided, all submissions will be retrieved.
QueueQuerySubmissionQueueItemsadmin.tasks.purgeAuthTokensPurge expired access tokens (call it from time to time, it does not hurt)
admin.tasks.clearCachesadmin.tasks.fatalizeIEsadmin.tasks.fatalizePendingsadmin.tasks.resubmitIEsadmin.tasks.resubmitPendingsadmin.tasks.getFullTextSearchDatabaseadmin.tasks.updateSemanticSearchDatabaseadmin.stats.getCountersadmin.stats.getDistributionOfVerdictsadmin.stats.getDistributionOfVerdictsByYearadmin.stats.getDistributionOfCompilersadmin.stats.getDistributionOfProglangsadmin.stats.getDistributionOfUsersByYearadmin.stats.getDistributionOfUsersByCountryadmin.stats.getDistributionOfUsersBySubmissionsadmin.stats.getRankingOfUsersUserRankingadmin.stats.getDistributionOfSubmissionsByHouradmin.stats.getDistributionOfSubmissionsByProglangadmin.stats.getDistributionOfSubmissionsByCompileradmin.stats.getDistributionOfSubmissionsByWeekdayadmin.stats.getDistributionOfSubmissionsByYearadmin.stats.getDistributionOfSubmissionsByYearForProglangadmin.stats.getDistributionOfSubmissionsByDayadmin.stats.getHeatmapCalendarOfSubmissionsDateRangeadmin.stats.getDistributionOfDomainsadmin.problems.getProblemSummaryProblemSummaryadmin.problems.getProblemsWithSummaryadmin.problems.getProblemsWithoutSummaryadmin.problems.getAbstractProblemSolutionTags| problem_nm | string |
SolutionTagsadmin.problems.getAbstractProblemsWithSolutionTagsadmin.problems.getAbstractProblemsWithoutSolutionTagstesting.check.checkUsertesting.check.checkInstructortesting.check.checkAdmintesting.check.throwErrortesting.playground.uploadNametesting.playground.negatetesting.playground.downloadNametesting.playground.download2Nametesting.playground.pingtesting.playground.toUpperCasetesting.playground.add2iTwoIntstesting.playground.add2fTwoFloatstesting.playground.incTwoIntsTwoIntstesting.playground.add3i| a | integer |
| b | integer |
| c | integer |
testing.playground.somethingSomeTypeSomeTypetesting.playground.clockWebStream