clients
clients.python
clients.pythonclients.typescript
clients.typescriptclients.javascript
clients.javascriptclients.java
clients.javaclients.cpp
clients.cppclients.php
clients.phpauth
auth.login
auth.loginOn success, token is a valid token and error is empty. On failure, token is empty and error is a message.
CredentialsInCredentialsOutauth.logout
auth.logoutauth.loginExam
auth.loginExamOn success, token is a valid token and error is empty. On failure, token is empty and error is a message.
ExamCredentialsInCredentialsOutauth.loginWithUsername
auth.loginWithUsernameOn success, token is a valid token and error is empty. On failure, token is empty and error is a message. Created for backward compatibility, do not use.
CredentialsWithUsernameInCredentialsOutmisc
misc.getApiVersion
misc.getApiVersionApiVersionmisc.getRequestInformation
misc.getRequestInformationRequestInformationmisc.getFortune
misc.getFortunemisc.getTime
misc.getTimeTimemisc.getHomepageStats
misc.getHomepageStatsHomepageStatsmisc.getLogo
misc.getLogomisc.getAvatarPacks
misc.getAvatarPacksAvatars are used in exams and contests to identify students or participants.
misc.getExamIcons
misc.getExamIconsExam icon are used in exams and contests to identify problems.
TagsDictmisc.getColors
misc.getColorsColor mappings may be used to colorize keys in the frontends. Color names are as defined in https://github.com/timoxley/colornames
ColorMappingmisc.getHexColors
misc.getHexColorsColor mappings may be used to colorize keys in the frontends.
ColorMappingmisc.getDemosForCompiler
misc.getDemosForCompilertables
tables.get
tables.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.getLanguages
tables.getLanguagesReturns all languages as a dictionary of objects, indexed by id.
Languagetables.getCountries
tables.getCountriesReturns all countries as a dictionary of objects, indexed by id.
Countrytables.getCompilers
tables.getCompilersReturns all compilers as a dictionary of objects, indexed by id.
Compilertables.getDrivers
tables.getDriversReturns all drivers as a dictionary of objects, indexed by id.
Drivertables.getVerdicts
tables.getVerdictsReturns all verdicts as a dictionary of objects, indexed by id.
Verdicttables.getProglangs
tables.getProglangsReturns all proglangs (porgramming languages) as a dictionary of objects, indexed by id.
Proglangproblems
problems.getAllAbstractProblems
problems.getAllAbstractProblemsIncludes problems.
AbstractProblemproblems.getAbstractProblems
problems.getAbstractProblemsIncludes problems.
AbstractProblemproblems.getAbstractProblemsInList
problems.getAbstractProblemsInListIncludes problems.
AbstractProblemproblems.getAbstractProblem
problems.getAbstractProblemIncludes problems
AbstractProblemproblems.getAbstractProblemSuppl
problems.getAbstractProblemSupplIncludes accepted compilers and accepted proglangs
AbstractProblemSupplproblems.getProblem
problems.getProblemIncludes abstract problem.
Problemproblems.getProblemRich
problems.getProblemRichIncludes abstract problem, which includes statements, testcases, etc.
ProblemRichproblems.getProblemSuppl
problems.getProblemSupplIncludes accepted compilers, accepted proglangs, official solutions checks and handler specifications
ProblemSupplproblems.getSampleTestcases
problems.getSampleTestcasesTestcaseproblems.getPublicTestcases
problems.getPublicTestcasesPublic testcases are like sample testcases, but are not meant to be show in the problem statatement, because of their long length.
Testcaseproblems.getHtmlStatement
problems.getHtmlStatementWe are working on this, please provide feedback.
problems.getTextStatement
problems.getTextStatementproblems.getMarkdownStatement
problems.getMarkdownStatementproblems.getPdfStatement
problems.getPdfStatementproblems.getZipStatement
problems.getZipStatementproblems.getTemplates
problems.getTemplatesproblems.getTemplate
problems.getTemplate| problem_id | string |
| template | string |
problems.semanticSearch
problems.semanticSearch| query | string |
| limit | number |
SearchResultsproblems.fullTextSearch
problems.fullTextSearch| query | string |
| limit | number |
SearchResultsstudent.keys
student.keys.get
student.keys.getAllKeysstudent.keys.getProblems
student.keys.getProblemsstudent.keys.getEnrolledCourses
student.keys.getEnrolledCoursesstudent.keys.getAvailableCourses
student.keys.getAvailableCoursesstudent.keys.getLists
student.keys.getListsstudent.profile
student.profile.get
student.profile.getIn case of exams, some fields are not nullified to avoid cheating.
Profilestudent.profile.getAvatar
student.profile.getAvatarstudent.profile.update
student.profile.updateNewProfilestudent.profile.updateAvatar
student.profile.updateAvatarstudent.profile.updatePassword
student.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
student.dashboard.getAbsoluteRanking
student.dashboard.getAbsoluteRankingstudent.dashboard.getAllDistributions
student.dashboard.getAllDistributionsAllDistributionsstudent.dashboard.getCompilersDistribution
student.dashboard.getCompilersDistributionDistributionstudent.dashboard.getDashboard
student.dashboard.getDashboardDashboardstudent.dashboard.getHeatmapCalendar
student.dashboard.getHeatmapCalendarHeatmapCalendarstudent.dashboard.getProglangsDistribution
student.dashboard.getProglangsDistributionDistributionstudent.dashboard.getStats
student.dashboard.getStatsDistributionstudent.dashboard.getLevel
student.dashboard.getLevelstudent.dashboard.getSubmissionsByHour
student.dashboard.getSubmissionsByHourDistributionstudent.dashboard.getSubmissionsByWeekDay
student.dashboard.getSubmissionsByWeekDayDistributionstudent.dashboard.getVerdictsDistribution
student.dashboard.getVerdictsDistributionDistributionstudent.submissions
student.submissions.indexForAbstractProblem
student.submissions.indexForAbstractProblemGrouped by problem.
Submissionstudent.submissions.indexForProblem
student.submissions.indexForProblemSubmissionstudent.submissions.getAll
student.submissions.getAllFlat array of submissions in chronological order.
Submissionstudent.submissions.submit
student.submissions.submit| problem_id | string |
| compiler_id | string |
| code | string |
| annotation | string |
student.submissions.submitFull
student.submissions.submitFullNewSubmissionInNewSubmissionOutstudent.submissions.get
student.submissions.get| problem_id | string |
| submission_id | string |
Submissionstudent.submissions.getCodeAsB64
student.submissions.getCodeAsB64| problem_id | string |
| submission_id | string |
student.submissions.getCodeMetrics
student.submissions.getCodeMetricsSee https://github.com/jutge-org/jutge-code-metrics for details.
| problem_id | string |
| submission_id | string |
student.submissions.getAwards
student.submissions.getAwards| problem_id | string |
| submission_id | string |
student.submissions.getAnalysis
student.submissions.getAnalysis| problem_id | string |
| submission_id | string |
SubmissionAnalysisstudent.submissions.getTestcaseAnalysis
student.submissions.getTestcaseAnalysis| problem_id | string |
| submission_id | string |
| testcase | string |
TestcaseAnalysisstudent.courses
student.courses.indexAvailable
student.courses.indexAvailableBriefCoursestudent.courses.indexEnrolled
student.courses.indexEnrolledBriefCoursestudent.courses.getAvailable
student.courses.getAvailableIncludes owner and lists.
Coursestudent.courses.getEnrolled
student.courses.getEnrolledIncludes owner and lists.
Coursestudent.courses.enroll
student.courses.enrollstudent.courses.unenroll
student.courses.unenrollstudent.lists
student.lists.getAll
student.lists.getAllBriefListstudent.lists.get
student.lists.getIncludes items, owner.
Liststudent.exam
student.exam.getReadyExams
student.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.get
student.exam.getRunningExamstudent.exam.getDocument
student.exam.getDocumentRunningExamDocumentstudent.exam.getDocumentPdf
student.exam.getDocumentPdfstudent.exam.getRanking
student.exam.getRankingRankingstudent.statuses
student.statuses.getAll
student.statuses.getAllAbstractStatusstudent.statuses.getForAbstractProblem
student.statuses.getForAbstractProblemAbstractStatusstudent.statuses.getForProblem
student.statuses.getForProblemStatusstudent.awards
student.awards.getAll
student.awards.getAllBriefAwardstudent.awards.get
student.awards.getAwardinstructor.documents
instructor.documents.index
instructor.documents.indexDocumentinstructor.documents.get
instructor.documents.getThe PDF file is not included in the response.
Documentinstructor.documents.getPdf
instructor.documents.getPdfinstructor.documents.create
instructor.documents.createDocumentCreationinstructor.documents.update
instructor.documents.updateDocumentCreationinstructor.documents.remove
instructor.documents.removeinstructor.lists
instructor.lists.index
instructor.lists.indexInstructorBriefListinstructor.lists.get
instructor.lists.getInstructorListinstructor.lists.create
instructor.lists.createInstructorListCreationinstructor.lists.update
instructor.lists.updateInstructorListCreationinstructor.lists.remove
instructor.lists.removeinstructor.lists.getArchived
instructor.lists.getArchivedAt some point, endpoints related to archiving lists should change as the archive bit will be an attribute of each list.
instructor.lists.archive
instructor.lists.archiveinstructor.lists.unarchive
instructor.lists.unarchiveinstructor.courses
instructor.courses.index
instructor.courses.indexInstructorBriefCourseinstructor.courses.get
instructor.courses.getInstructorCourseinstructor.courses.create
instructor.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.update
instructor.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.remove
instructor.courses.removeA course should not be deleted. Ask a system administrator to remove it if you really need it.
instructor.courses.sendInviteToStudents
instructor.courses.sendInviteToStudentsPlease do not abuse.
instructor.courses.sendInviteToTutors
instructor.courses.sendInviteToTutorsPlease do not abuse.
instructor.courses.getStudentProfiles
instructor.courses.getStudentProfilesStudentProfileinstructor.courses.getTutorProfiles
instructor.courses.getTutorProfilesStudentProfileinstructor.courses.getArchived
instructor.courses.getArchivedAt some point, endpoints related to archiving courses should change as the archive bit will be an attribute of each course.
instructor.courses.archive
instructor.courses.archiveinstructor.courses.unarchive
instructor.courses.unarchiveinstructor.exams
instructor.exams.index
instructor.exams.indexInstructorBriefExaminstructor.exams.get
instructor.exams.getInstructorExaminstructor.exams.getDocuments
instructor.exams.getDocumentsRunningExamDocumentinstructor.exams.getProblems
instructor.exams.getProblemsInstructorExamProbleminstructor.exams.getStudents
instructor.exams.getStudentsInstructorExamStudentinstructor.exams.getStudent
instructor.exams.getStudent| exam_nm | string |
string |
InstructorExamStudentinstructor.exams.getSubmissions
instructor.exams.getSubmissionsMeant for real-time streaming of submissions, most instructors will possibly prefer getSubmissionsPack.
| exam_nm | string |
| options | InstructorExamSubmissionsOptions |
WebStreaminstructor.exams.getSubmissionsPack
instructor.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.getStatistics
instructor.exams.getStatisticsExamStatisticsinstructor.exams.create
instructor.exams.createInstructorExamCreationinstructor.exams.update
instructor.exams.updateInstructorExamUpdateinstructor.exams.updateDocuments
instructor.exams.updateDocuments| exam_nm | string |
| document_nms | array of string |
instructor.exams.updateCompilers
instructor.exams.updateCompilers| exam_nm | string |
| compiler_ids | array of string |
instructor.exams.updateProblems
instructor.exams.updateProblems| exam_nm | string |
| problems | array of InstructorExamProblem |
instructor.exams.updateStudents
instructor.exams.updateStudents| exam_nm | string |
| students | array of InstructorExamStudent |
instructor.exams.addStudents
instructor.exams.addStudents| exam_nm | string |
| students | array of InstructorExamStudent |
instructor.exams.removeStudents
instructor.exams.removeStudents| exam_nm | string |
| emails | array of string |
instructor.exams.remove
instructor.exams.removeNote: An exam can only be deleted if it has not started.
instructor.exams.getArchived
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.archive
instructor.exams.archiveinstructor.exams.unarchive
instructor.exams.unarchiveinstructor.exams.getRanking
instructor.exams.getRankingUnder development.
Rankinginstructor.problems
instructor.problems.getOwnProblems
instructor.problems.getOwnProblemsinstructor.problems.getOwnProblemsWithPasscode
instructor.problems.getOwnProblemsWithPasscodeinstructor.problems.getPasscode
instructor.problems.getPasscodeReturns an empty string if the problem has no passcode.
instructor.problems.setPasscode
instructor.problems.setPasscodeThe passcode must be at least 8 characters long and contain only alphanumeric characters. The passcode will be stored in the database in plain text.
| problem_nm | string |
| passcode | string |
instructor.problems.removePasscode
instructor.problems.removePasscodeinstructor.problems.sharePasscode
instructor.problems.sharePasscodeNo emails are sent. Emails that are not registered in the system are ignored.
| problem_nm | string |
| emails | array of string |
instructor.problems.deprecate
instructor.problems.deprecate| problem_nm | string |
| reason | string |
instructor.problems.undeprecate
instructor.problems.undeprecateinstructor.problems.download
instructor.problems.downloadQuick and dirty implementation, should be improved. Returns a ZIP file with the abstract problem and all its problems.
instructor.problems.legacyCreate
instructor.problems.legacyCreateAt some point, this endpoint will be deprecated. It is a bit slow (about one minute). Returns the problem_nm of the new problem. Does not provide any feedback.
instructor.problems.legacyUpdate
instructor.problems.legacyUpdateAt some point, this endpoint will be deprecated. Does not provide any feedback.
instructor.problems.legacyCreateWithTerminal
instructor.problems.legacyCreateWithTerminalAt some point, this endpoint will be deprecated. Returns a Terminal from which the problem feedback is streamed.
WebStreaminstructor.problems.legacyUpdateWithTerminal
instructor.problems.legacyUpdateWithTerminalAt some point, this endpoint will be deprecated. Returns an id from which the problem feedback is streamed under /terminals.
WebStreaminstructor.problems.generateProblemWithJutgeAI
instructor.problems.generateProblemWithJutgeAIProblemGenerationInfoinstructor.queries
instructor.queries.getCourseProblemSubmissions
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.getCourseListSubmissions
instructor.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 |
SubmissionsQueryadmin.instructors
admin.instructors.get
admin.instructors.getInstructorEntriesadmin.instructors.add
admin.instructors.addstring | |
| username | string |
admin.instructors.remove
admin.instructors.removeadmin.users
admin.users.count
admin.users.countadmin.users.create
admin.users.createUserCreationadmin.users.remove
admin.users.removeadmin.users.setPassword
admin.users.setPasswordstring | |
| password | string |
| message | string |
admin.users.getProfiles
admin.users.getProfilesProfileForAdminadmin.users.getAllWithEmail
admin.users.getAllWithEmailUsersEmailsAndNamesadmin.users.getSpamUsers
admin.users.getSpamUsersadmin.users.removeSpamUsers
admin.users.removeSpamUsersadmin.dashboard
admin.dashboard.getAll
admin.dashboard.getAllAdminDashboardadmin.dashboard.getDatabasesInfo
admin.dashboard.getDatabasesInfoDatabasesInfoadmin.dashboard.getFreeDiskSpace
admin.dashboard.getFreeDiskSpaceFreeDiskSpaceadmin.dashboard.getRecentConnectedUsers
admin.dashboard.getRecentConnectedUsersRecentConnectedUsersadmin.dashboard.getRecentLoadAverages
admin.dashboard.getRecentLoadAveragesRecentLoadAveragesadmin.dashboard.getRecentSubmissions
admin.dashboard.getRecentSubmissionsRecentSubmissionsadmin.dashboard.getSubmissionsHistograms
admin.dashboard.getSubmissionsHistogramsSubmissionsHistogramsadmin.dashboard.getZombies
admin.dashboard.getZombiesZombiesadmin.dashboard.getUpcomingExams
admin.dashboard.getUpcomingExams| daysBefore | integer |
| daysAfter | integer |
UpcomingExamsadmin.dashboard.getPM2Status
admin.dashboard.getPM2StatusThis endpoint retrieves the status of PM2 processes as reported by `pm2 jlist`.
admin.dashboard.getDockerStatus
admin.dashboard.getDockerStatusThis endpoint retrieves the status of docker processes as reported by `docker ps --all`.
admin.queue
admin.queue.getQueue
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
admin.tasks.purgeAuthTokens
admin.tasks.purgeAuthTokensPurge expired access tokens (call it from time to time, it does not hurt)
admin.tasks.clearCaches
admin.tasks.clearCachesadmin.tasks.fatalizeIEs
admin.tasks.fatalizeIEsadmin.tasks.fatalizePendings
admin.tasks.fatalizePendingsadmin.tasks.resubmitIEs
admin.tasks.resubmitIEsadmin.tasks.resubmitPendings
admin.tasks.resubmitPendingsadmin.tasks.getFullTextSearchDatabase
admin.tasks.getFullTextSearchDatabaseadmin.tasks.updateSemanticSearchDatabase
admin.tasks.updateSemanticSearchDatabaseadmin.stats
admin.stats.getCounters
admin.stats.getCountersadmin.stats.getDistributionOfVerdicts
admin.stats.getDistributionOfVerdictsadmin.stats.getDistributionOfVerdictsByYear
admin.stats.getDistributionOfVerdictsByYearadmin.stats.getDistributionOfCompilers
admin.stats.getDistributionOfCompilersadmin.stats.getDistributionOfProglangs
admin.stats.getDistributionOfProglangsadmin.stats.getDistributionOfUsersByYear
admin.stats.getDistributionOfUsersByYearadmin.stats.getDistributionOfUsersByCountry
admin.stats.getDistributionOfUsersByCountryadmin.stats.getDistributionOfUsersBySubmissions
admin.stats.getDistributionOfUsersBySubmissionsadmin.stats.getRankingOfUsers
admin.stats.getRankingOfUsersUserRankingadmin.stats.getDistributionOfSubmissionsByHour
admin.stats.getDistributionOfSubmissionsByHouradmin.stats.getDistributionOfSubmissionsByProglang
admin.stats.getDistributionOfSubmissionsByProglangadmin.stats.getDistributionOfSubmissionsByCompiler
admin.stats.getDistributionOfSubmissionsByCompileradmin.stats.getDistributionOfSubmissionsByWeekday
admin.stats.getDistributionOfSubmissionsByWeekdayadmin.stats.getDistributionOfSubmissionsByYear
admin.stats.getDistributionOfSubmissionsByYearadmin.stats.getDistributionOfSubmissionsByYearForProglang
admin.stats.getDistributionOfSubmissionsByYearForProglangadmin.stats.getDistributionOfSubmissionsByDay
admin.stats.getDistributionOfSubmissionsByDayadmin.stats.getHeatmapCalendarOfSubmissions
admin.stats.getHeatmapCalendarOfSubmissionsDateRangeadmin.stats.getDistributionOfDomains
admin.stats.getDistributionOfDomainsadmin.problems
admin.problems.getSolutions
admin.problems.getSolutionsadmin.problems.getSolutionAsB64
admin.problems.getSolutionAsB64| problem_id | string |
| proglang | string |
admin.problems.getSolutionAsFile
admin.problems.getSolutionAsFile| problem_id | string |
| proglang | string |
admin.problems.prepareProblemSummary
admin.problems.prepareProblemSummary| problem_id | string |
| model | string |
ProblemSummaryadmin.problems.getProblemSummary
admin.problems.getProblemSummaryProblemSummaryadmin.problems.getProblemsWithSummary
admin.problems.getProblemsWithSummaryadmin.problems.getProblemsWithoutSummary
admin.problems.getProblemsWithoutSummaryadmin.problems.prepareAbstractProblemSolutionTags
admin.problems.prepareAbstractProblemSolutionTags| problem_nm | string |
| model | string |
SolutionTagsadmin.problems.getAbstractProblemSolutionTags
admin.problems.getAbstractProblemSolutionTags| problem_nm | string |
SolutionTagsadmin.problems.getAbstractProblemsWithSolutionTags
admin.problems.getAbstractProblemsWithSolutionTagsadmin.problems.getAbstractProblemsWithoutSolutionTags
admin.problems.getAbstractProblemsWithoutSolutionTagstesting.check
testing.check.checkUser
testing.check.checkUsertesting.check.checkInstructor
testing.check.checkInstructortesting.check.checkAdmin
testing.check.checkAdmintesting.check.throwError
testing.check.throwErrortesting.playground
testing.playground.upload
testing.playground.uploadNametesting.playground.negate
testing.playground.negatetesting.playground.download
testing.playground.downloadNametesting.playground.download2
testing.playground.download2Nametesting.playground.ping
testing.playground.pingtesting.playground.toUpperCase
testing.playground.toUpperCasetesting.playground.add2i
testing.playground.add2iTwoIntstesting.playground.add2f
testing.playground.add2fTwoFloatstesting.playground.inc
testing.playground.incTwoIntsTwoIntstesting.playground.add3i
testing.playground.add3i| a | integer |
| b | integer |
| c | integer |
testing.playground.something
testing.playground.somethingSomeTypeSomeTypetesting.playground.clock
testing.playground.clockWebStream