Judge0 CE - API Docs
About Judge0 is a robust, scalable, and open-source online code execution system. You can use it to build a wide range of applications that need online code execution features. Some examples include competitive programming platforms, e-learning platforms, candidate assessment and recruitment platforms, online code editors, online IDEs, and many more.
In our research paper Robust and Scalable Online Code Execution System, we present Judge0’s modern modular architecture that can be easily deployed and scaled. We study its design, comment on the various challenges in building such systems, and compare it with other available online code execution systems and online judge systems.
To see Judge0 in action, try Judge0 IDE - our free and open-source online code editor. You can also try using a dummy client that can help you explore and test most of the features of Judge0.
-Easily integrate online code editor with code execution (a.k.a. online compiler) to your website with our embeddable web widgets.
Features
- Quick and easy installation @@ -73,14 +53,12 @@
Flavors You can find the source code for Judge0 CE on the master
branch, while you can find the source code for Judge0 Extra CE on the extra
branch.
Judge0 Extra CE is also available on RapidAPI.
Version
-This document describes Judge0 CE v1.13.0.
+This document describes Judge0 CE v1.13.1.
Date and time formats
ISO 8601 standard is used.
Example: 2016-09-11T10:19:35Z
License
Judge0 is licensed under the GNU General Public License v3.0.
-Donate
-Your are more than welcome to support Judge0 development on Patreon, via PayPal or Revolut. Thank you.
Authentication ¶
Administrators of Judge0 can configure Judge0 to require you to have an authentication token (a.k.a. API key).
If that is the case with the instance of Judge0 you are using, then you
should provide X-Auth-Token
header field in every API request.
Multi-file programs Multi-file programs are available since v1.10.0 and they allow you specify your own compilation and execution scripts that Judge0 will use.
To use multi-file program feature you need to choose a language called Multi-file program whoose ID is 89. Moreover, you need to send all program files with additional_files
attribute. With multi-file programs attribute source_code
cannot be used, i.e. all files should be sent with additional_files
attribute.
As mentioned in the table above, additional_files
attribute should be a content of a Base64 encoded .zip
archive. This archive will be extracted in the sandbox before compilation and execution.
For the Judge0 to know how to compile and execute your multi-file program you need to provide two special files that should be available in the root of the .zip
archive that you are sending with additional_files
attribute. These files should be named compile
and run
, and are expected to be Bash scripts that know how to compile and execute your multi-file program. If your multi-file program does not need compilation step, then you don’t need to provide compile
script. Take a look at this example to learn how to use this feature to compile and run multi-file C++ project that uses CMake.
For the Judge0 to know how to compile and execute your multi-file program you need to provide two special files that should be available in the root of the .zip
archive that you are sending with additional_files
attribute. These files should be named compile
and run
, and are expected to be Bash scripts that know how to compile and execute your multi-file program. If your multi-file program does not need compilation step, then you don’t need to provide compile
script. Take a look at this example to learn how to use this feature to compile and run multi-file C++ project that uses CMake.
Create a SubmissionPOST/submissions/{?base64_encoded,wait}
Creates new submission. Created submission waits in queue to be processed. On successful creation, you are returned submission token which can be used to check submission status.
If submission’s source_code
, stdin
or expected_output
contains non printable characters, or
@@ -1706,7 +1684,7 @@