Skip to content

Installation

Python

Requires Python 3.10+.

bash
pip install ovrin

The package depends only on httpx.

python
import ovrin

client = ovrin.Client()                     # OVRIN_API_KEY from the environment
client = ovrin.Client(api_key="ovrin_...")  # or pass it explicitly
client = ovrin.Client(base_url="https://api.ovrin.app")

Errors raise a typed hierarchy — branch on class, not prose:

python
from ovrin import AuthenticationError, NotFoundError, QuotaError, ApiError

Every mutating sandbox call accepts idempotency_key= so retries are safe.

TypeScript / JavaScript

Requires Node 18+ (global fetch). No runtime dependencies.

bash
npm install ovrin
ts
import { Ovrin } from "ovrin";

const client = new Ovrin();                          // OVRIN_API_KEY from the environment
const client = new Ovrin({ apiKey: "ovrin_..." });   // or pass it explicitly
const client = new Ovrin({ baseUrl: "https://api.ovrin.app" });
ts
import {
  AuthenticationError,
  NotFoundError,
  OvrinError,
  QuotaError,
} from "ovrin";

Plain HTTP

The API is REST with JSON bodies. Authenticate every request:

Authorization: Bearer $OVRIN_API_KEY

Base URL: https://api.ovrin.app. See the REST reference for the endpoint catalog.

Environment variables

VariableUsed byPurpose
OVRIN_API_KEYPython & TypeScript clientsDefault API key
OVRIN_BASE_URLPython & TypeScript clientsOverride the API base URL

Self-hosting the runtime?

The upstream OpenSandbox SDKs (pip install opensandbox, @alibaba-group/opensandbox, …) talk to a lifecycle server directly. On Ovrin's cloud that server is internal — use the ovrin packages above. Self-hosters should follow the OpenSandbox documentation for those SDKs.