Getting started
Quickstart
From zero to a running sandbox in a few minutes.
1. Get an API key
Create an account, then generate a key from
your dashboard. Keys look like
sk_live_… and are shown once — store it somewhere safe.
New teams start on the free tier with a one-time credit balance, so you can try everything
before adding a card.
Keep it secret. An API key grants full access to run code and spend usage on your team. Never ship it in client-side code or commit it to a repo.
2. Run some code
A run is one-shot: you submit code and a language, and QuickTane executes it in a fresh sandbox. The simplest path is the SDK, which submits the run and waits for the result for you.
Python
pip install quicktanefrom quicktane import QuickTane
qt = QuickTane("sk_live_your_key") # or set QUICKTANE_API_KEY
run = qt.run_and_wait("print('hello from the sandbox')", language="python")
print(run.status) # "completed"
print(run.output) # "hello from the sandbox\n"
print(run.exit_code) # 0Node / TypeScript
npm install @quicktane-sdk/clientimport { QuickTane } from "@quicktane-sdk/client";
const qt = new QuickTane("sk_live_your_key"); // or set QUICKTANE_API_KEY
const run = await qt.runAndWait("console.log(2 + 2)", { language: "node" });
console.log(run.status); // "completed"
console.log(run.output); // "4\n"curl
Prefer raw HTTP? Submitting a run returns 202 Accepted with a run_id:
curl https://api.quicktane.com/v1/run \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"language": "python", "code": "print(1 + 1)"}'{
"run_id": 42,
"status": "pending",
"language": "python",
"exit_code": null,
"duration_ms": null,
"output": null,
"created_at": "2026-07-19T12:00:00.000000Z"
}3. Fetch the result
Runs execute asynchronously. Poll GET /v1/runs/{run_id} until status
is a terminal value (completed, failed, timeout, …), or
register a webhook to be notified the moment it finishes.
curl https://api.quicktane.com/v1/runs/42 \
-H "Authorization: Bearer sk_live_your_key"{
"run_id": 42,
"status": "completed",
"language": "python",
"exit_code": 0,
"duration_ms": 137,
"output": "2\n",
"created_at": "2026-07-19T12:00:00.000000Z"
}The SDK's run_and_wait / runAndWait handles this polling for you — reach for raw HTTP only when you need full control.
Next steps
- Need state across many steps? Use an interactive session.
- Learn how authentication and errors work.
- Browse the complete API reference.