CodeCompiler APIs
Bring code execution and the CodeCompiler editor into your own product. The execution API runs on JDoodle under the hood and covers the same 53+ programming languages available on the site — no separate account needed to try it.
Start building
Code Execution API
Send code and stdin from your backend, get back stdout, stderr and timing — no browser required. This is the same endpoint the online editor calls.
Request
curl --location --request POST 'https://codecompiler.forgesparse.com/api/run' \
--header 'Content-Type: application/json' \
--data-raw '{
"language": "python",
"version": "3.10.0",
"files": [
{ "name": "main.py", "content": "print(\"Hello, \" + input())" }
],
"stdin": "Peter"
}'Response
{
"stdout": "Hello, Peter\n",
"stderr": "",
"output": "Hello, Peter\n",
"code": 0,
"signal": null,
"language": "python",
"version": "3.10.0"
}| Field | Description |
|---|---|
| language | Language slug — see the supported languages table below. |
| version | Free-form version label, echoed back in the response. |
| files | Array of { name, content }. The first file is treated as the entry point; extra files are appended as commented sections. |
| stdin | Optional. Text piped to the program's standard input. |
| args | Optional array of CLI arguments, prepended to stdin for programs that read argv. |
| stdout / stderr / output | Captured program output. output mirrors JDoodle's combined stream; stdout/stderr are split heuristically. |
| code | 0 on a clean run, 1 if a compile or runtime error was detected, null on infra errors. |
| error | Present only on failure — a short machine-readable label (see below). |
Error responses
Failures come back as HTTP 200 with an error label so you can branch on it without checking status codes:
Unsupported language
The language slug isn't mapped to a runtime yet.
Missing JDoodle credentials
Server-side configuration issue — not something callers can fix.
Invalid credentials
JDoodle rejected the configured API keys.
Daily limit exceeded
The shared execution quota was hit — retry later.
Timeout
Execution took longer than 20 seconds and was aborted.
Network error
Could not reach the execution backend — safe to retry.
Supported languages
53 languages currently run through this API. Use the slug from the language column.
| slug | name | category |
|---|---|---|
| javascript | JavaScript | popular |
| python | Python | popular |
| java | Java | popular |
| c | C | popular |
| cpp | C++ | popular |
| csharp | C# | popular |
| go | Go | programming |
| rust | Rust | programming |
| ruby | Ruby | programming |
| php | PHP | popular |
| typescript | TypeScript | programming |
| nodejs | Node.js | popular |
| kotlin | Kotlin | programming |
| swift | Swift | programming |
| bash | Bash | programming |
| perl | Perl | programming |
| lua | Lua | popular |
| haskell | Haskell | programming |
| dart | Dart | programming |
| scala | Scala | programming |
| groovy | Groovy | popular |
| elixir | Elixir | programming |
| clojure | Clojure | programming |
| fsharp | F# | programming |
| fortran | Fortran | programming |
| cobol | COBOL | programming |
| pascal | Pascal | programming |
| r | R | programming |
| erlang | Erlang | programming |
| ocaml | OCaml | programming |
| d | D | programming |
| assembly | Assembly | popular |
| prolog | Prolog | programming |
| commonlisp | Common Lisp | programming |
| vbnet | Visual Basic | programming |
| deno | Deno | programming |
| python2 | Python 2 | programming |
| freebasic | FreeBASIC | programming |
| mysql | MySQL | database |
| sqlite | SQLite | database |
| postgresql | PostgreSQL | database |
| plsql | PL/SQL | database |
| mongodb | MongoDB | database |
| oracle | Oracle | database |
| redis | Redis | database |
| mariadb | MariaDB | database |
| sqlserver | SQL Server | database |
| cassandra | Cassandra | database |
| questdb | QuestDB | database |
| duckdb | DuckDB | database |
| surrealdb | SurrealDB | database |
| firebird | Firebird | database |
| clickhouse | ClickHouse | database |
Embed Editor
Every language page on CodeCompiler is a clean, chrome-free editor — no site header or footer — so it drops straight into an iframe.
Embedding the default editor
<iframe
frameBorder="0"
height="450px"
src="https://codecompiler.forgesparse.com/python"
width="100%"
></iframe>Embedding a specific language
Swap the path for any supported slug — e.g. /java, /javascript, /html.
<iframe
frameBorder="0"
height="450px"
src="https://codecompiler.forgesparse.com/java"
width="100%"
></iframe>postMessageevents, etc.) aren't wired up yet — the iframe above embeds the full interactive editor as-is. Let us know what controls you need and we'll prioritize them.
