Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.runtools.ai/llms.txt

Use this file to discover all available pages before exploring further.

Services

Most platform resources live behind the orchestrator API:
https://api.runtools.ai/v1
Tool Hub and secrets endpoints use the tools service:
https://tools.runtools.ai/v1
OAuth account connection endpoints use the auth service:
https://auth.runtools.ai/v1
Workspace file endpoints use the storage service:
https://storage.runtools.ai/v1
The TypeScript SDK routes calls to the correct service when you use rt.sandbox, rt.agent, rt.tools, rt.secrets, or rt.auth.

Authentication

API keys use the X-API-Key header:
curl https://api.runtools.ai/v1/sandboxes \
  -H "X-API-Key: $RUNTOOLS_API_KEY"
Dashboard and CLI sessions use bearer tokens:
curl https://api.runtools.ai/v1/me \
  -H "Authorization: Bearer $RUNTOOLS_ACCESS_TOKEN"

Create an API key

API keys are managed from the Credentials page or through the CLI.

Request Format

JSON endpoints expect:
Content-Type: application/json
Accept: application/json
curl -X POST https://api.runtools.ai/v1/sandboxes \
  -H "X-API-Key: $RUNTOOLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "base-ubuntu",
    "name": "build-runner"
  }'

Response Format

Most APIs return a JSON envelope:
{
  "data": {
    "id": "sandbox-abc123"
  },
  "meta": {
    "requestId": "req_xxx"
  }
}
Some execution endpoints return raw engine payloads for compatibility. The SDK normalizes the common cases.

Errors

{
  "error": {
    "code": "not_found",
    "message": "Sandbox not found",
    "requestId": "req_xxx"
  }
}

Pagination

List endpoints that page results return cursor metadata:
curl "https://api.runtools.ai/v1/sandboxes?limit=50&cursor=abc" \
  -H "X-API-Key: $RUNTOOLS_API_KEY"
{
  "data": [],
  "meta": {
    "hasMore": false,
    "nextCursor": null
  }
}
The SDK exposes both high-level collection methods and page-aware methods where pagination matters. For sandboxes, use rt.sandbox.list() for all pages or rt.sandbox.listPage() when you need the cursor.

Core Resources

Sandboxes

Create sandboxes, execute commands, pause, resume, and destroy them.

Workspaces

Manage persistent workspaces and file operations.

Agents

Create agents and run one-shot or threaded agent tasks.

Tools

Search Tool Hub, install tools, store credentials, and execute actions.

SDK

Use the SDK when you can. It handles service URLs, authentication headers, response envelopes, and common validation.
import { RunTools } from '@runtools/sdk';

const rt = new RunTools({ apiKey: process.env.RUNTOOLS_API_KEY });

const sandbox = await rt.sandbox.create({
  template: 'base-ubuntu',
  name: 'docs-runner',
});

await sandbox.waitForReady();
const result = await sandbox.exec('node --version');
console.log(result.stdout);
await sandbox.destroy();