Runloop

Runloop provides AI-native cloud development environments (devboxes) and an agent benchmarking platform. The Runloop API lets you programmatically spin up isolated Linux devboxes, run and stream commands, mount code, snapshot state via blueprints and snapshots, and evaluate coding agents against scenarios and benchmarks - all over a Bearer-authenticated REST interface at api.runloop.ai/v1.

8 APIs 0 Features
AIDeveloper EnvironmentsDevboxesCoding AgentsBenchmarkingCloud IDE

APIs

Runloop Devboxes API

Create and manage isolated cloud Linux devboxes - launch, suspend, resume, shut down and keep-alive; execute shell commands synchronously or asynchronously; stream logs; read, w...

Runloop Blueprints API

Define and build custom, reproducible devbox base images from a Dockerfile or system setup commands, preview builds, inspect build logs, and reuse blueprints as the starting poi...

Runloop Snapshots API

Capture, list, query and delete point-in-time disk snapshots of a running devbox (snapshot_disk on a devbox, plus the devboxes/disk_snapshots management endpoints) so a new devb...

Runloop Code Mounts API

Mount source code into a devbox at launch. Code mounts are configured as CodeMount objects (repo owner/name, git ref, install command, token) supplied in a devbox or blueprint c...

Runloop Repositories API

Connect Git repositories so their source can be mounted into devboxes and blueprints. Repository access is expressed through CodeMount configuration on devbox and blueprint crea...

Runloop Scenarios API

Define reproducible coding-agent tasks with a starting environment, input context and scoring contract; start scenario runs, then score and complete them to measure agent perfor...

Runloop Benchmarks API

Group scenarios into benchmarks and run a coding agent across the whole suite, aggregating per-scenario scores into a single benchmark run for comparing agents and models.

Runloop Objects API

Upload, list, download and delete binary objects (artifacts, datasets, results) via pre-signed URLs for use as inputs to and outputs from devboxes, scenarios and benchmarks.

Collections

Pricing Plans

Runloop Plans Pricing

5 plans

PLANS

Rate Limits

Runloop Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
TrustCenter
TrustCenter
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Runloop API
  version: '1.0'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Devboxes
    type: folder
  items:
  - info:
      name: Create a Devbox.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes
      body:
        type: json
        data: '{}'
    docs: Create and launch a new devbox, optionally from a blueprint or snapshot.
  - info:
      name: List Devboxes.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/devboxes
    docs: List devboxes for the account.
  - info:
      name: Get Devbox details.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/devboxes/{id}
    docs: Get details for a single devbox.
  - info:
      name: Suspend a Devbox.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/suspend
    docs: Suspend a running devbox to a resumable state; suspended devboxes accrue no compute.
  - info:
      name: Resume a Devbox.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/resume
    docs: Resume a suspended devbox.
  - info:
      name: Shutdown a Devbox.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/shutdown
    docs: Shut down a running devbox.
  - info:
      name: Keep a Devbox alive.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/keep_alive
    docs: Reset the devbox idle timer.
  - info:
      name: Execute a command asynchronously.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/execute_async
      body:
        type: json
        data: '{"command":"echo hello"}'
    docs: Start a shell command and return an execution handle to poll or stream.
  - info:
      name: Get an execution.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/devboxes/{devbox_id}/executions/{execution_id}
    docs: Get the status and output of an async execution.
  - info:
      name: Read file contents.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/read_file_contents
      body:
        type: json
        data: '{"file_path":"/home/user/file.txt"}'
    docs: Read text file contents from a devbox.
  - info:
      name: Write file contents.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/write_file_contents
      body:
        type: json
        data: '{"file_path":"/home/user/file.txt","contents":"hello"}'
    docs: Write text file contents to a devbox.
  - info:
      name: Enable a tunnel.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/enable_tunnel
      body:
        type: json
        data: '{"port":8080}'
    docs: Expose a port on the devbox at a public URL.
- info:
    name: Blueprints
    type: folder
  items:
  - info:
      name: Create a Blueprint.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/blueprints
      body:
        type: json
        data: '{"name":"my-blueprint"}'
    docs: Create and build a reproducible devbox base image.
  - info:
      name: List Blueprints.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/blueprints
    docs: List blueprints for the account.
  - info:
      name: Get a Blueprint.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/blueprints/{id}
    docs: Get a single blueprint.
  - info:
      name: Get Blueprint build logs.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/blueprints/{id}/logs
    docs: Get the build logs for a blueprint.
- info:
    name: Snapshots
    type: folder
  items:
  - info:
      name: Snapshot a Devbox disk.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/{id}/snapshot_disk
      body:
        type: json
        data: '{}'
    docs: Capture a point-in-time disk snapshot of a devbox.
  - info:
      name: List disk snapshots.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/devboxes/disk_snapshots
    docs: List disk snapshots for the account.
  - info:
      name: Delete a disk snapshot.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/devboxes/disk_snapshots/{id}/delete
    docs: Delete a disk snapshot.
- info:
    name: Scenarios
    type: folder
  items:
  - info:
      name: Create a Scenario.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/scenarios
      body:
        type: json
        data: '{"name":"my-scenario"}'
    docs: Define a reproducible coding-agent task with a scoring contract.
  - info:
      name: Start a ScenarioRun.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/scenarios/start_run
      body:
        type: json
        data: '{"scenario_id":"scn_123"}'
    docs: Start a new run of a scenario.
  - info:
      name: Score a ScenarioRun.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/scenarios/runs/{id}/score
    docs: Score a scenario run against its scoring contract.
  - info:
      name: Complete a ScenarioRun.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/scenarios/runs/{id}/complete
    docs: Complete a scenario run.
- info:
    name: Benchmarks
    type: folder
  items:
  - info:
      name: Create a Benchmark.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/benchmarks
      body:
        type: json
        data: '{"name":"my-benchmark","scenario_ids":[]}'
    docs: Group scenarios into a benchmark suite.
  - info:
      name: Start a BenchmarkRun.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/benchmarks/start_run
      body:
        type: json
        data: '{"benchmark_id":"bmk_123"}'
    docs: Run an agent across all scenarios in a benchmark.
  - info:
      name: Get a BenchmarkRun.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/benchmarks/runs/{id}
    docs: Get the status and aggregated results of a benchmark run.
- info:
    name: Objects
    type: folder
  items:
  - info:
      name: Create an Object.
      type: http
    http:
      method: POST
      url: https://api.runloop.ai/v1/objects
      body:
        type: json
        data: '{"name":"artifact.tar.gz"}'
    docs: Create an object record and receive a pre-signed upload URL.
  - info:
      name: List Objects.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/objects
    docs: List objects for the account.
  - info:
      name: Download an Object.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/objects/{id}/download
    docs: Generate a pre-signed download URL for an object.
- info:
    name: Account
    type: folder
  items:
  - info:
      name: Get the authenticated account.
      type: http
    http:
      method: GET
      url: https://api.runloop.ai/v1/accounts/me
    docs: Get the account, tier and billing details for the API key.
bundled: true