Reference
SDKs
Official clients for Python and Node/TypeScript. Thin wrappers over the REST API — everything you can do with curl, just nicer.
Python
bash
pip install quicktanepython
from quicktane import QuickTane
qt = QuickTane("sk_live_your_key") # or set QUICKTANE_API_KEY
# one-shot
run = qt.run_and_wait("print('hi')", language="python")
print(run.output, run.exit_code)
# fire-and-forget
run = qt.run("print(2 + 2)", language="python")
run = qt.get_run(run.run_id)
# interactive session
with qt.create_sandbox("python") as sbx:
sbx.files.write("app.py", "print('hello')")
print(sbx.exec(command="python app.py").stdout)Node / TypeScript
bash
npm install @quicktane-sdk/clienttypescript
import { QuickTane } from "@quicktane-sdk/client";
const qt = new QuickTane("sk_live_your_key"); // or set QUICKTANE_API_KEY
// one-shot
const run = await qt.runAndWait("console.log('hi')", { language: "node" });
console.log(run.output, run.exitCode);
// interactive session
const sbx = await qt.createSandbox("node");
await sbx.files.write("app.js", "console.log('hello')");
console.log((await sbx.exec({ command: "node app.js" })).stdout);
await sbx.kill();TypeScript-native with full types; zero runtime dependencies (uses the built-in fetch).
Configuration
| Setting | Purpose |
|---|---|
api_key / first arg | Your key; falls back to QUICKTANE_API_KEY. |
base_url / baseUrl | Override the API base; falls back to QUICKTANE_BASE_URL. |
timeout | HTTP client timeout. |
Error handling
Both SDKs raise typed errors (AuthenticationError, NotFoundError,
ValidationError, RateLimitError, APIError) that subclass a
common base — see Errors.
Prefer raw HTTP? Every SDK call maps 1:1 to an endpoint in the API reference.