{
  "data": {
    "a": {
      "slug": "runloop",
      "name": "Runloop Devboxes",
      "vendor": "Runloop",
      "vendorUrl": "https://runloop.ai",
      "kind": "http-api",
      "category": "code-sandboxes",
      "summary": "Devboxes, VM sandboxes for coding agents, with blueprints for prebuilt images, disk snapshots, suspend and resume, idle policies and a gateway that adds secret-backed headers to outbound API and MCP calls.",
      "url": "https://www.anchorterminal.com/tools/runloop",
      "markdownUrl": "https://www.anchorterminal.com/tools/runloop.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/runloop.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/runloop.json",
      "repo": "https://github.com/runloopai/api-client-ts",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.runloop.ai",
      "packages": [
        {
          "registry": "pypi",
          "name": "runloop_api_client"
        },
        {
          "registry": "npm",
          "name": "@runloop/api-client"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API key on api.runloop.ai. The SDKs read `RUNLOOP_API_KEY`.",
      "pricing": "usage",
      "pricingNotes": "Billed per second while a devbox is initialising, running, suspending or resuming. $0.108 a CPU-hour ($0.00003 a second), $0.0252 a GB-hour of memory, $0.00034236 a GB-hour of disk and $0.000072 a GB-hour of snapshot storage. Basic is free with 100 GB of storage and usage billing, Pro is $250 a month with 1 TB of storage, suspend and resume and repo connections, Enterprise adds VPC deployment. New accounts get a $50 credit without a card, limited to 3 running devboxes, 5 blueprints and 10 snapshots during the trial (https://runloop.ai/pricing). Suspended devboxes keep paying for storage (https://docs.runloop.ai/docs/devboxes/lifecycle).",
      "priceSummary": "$0.108 / vCPU-hr",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 34,
        "npmWeekly": 23267,
        "pypiWeekly": 136023,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.runloop.ai",
      "llmsTxt": "https://docs.runloop.ai/llms.txt",
      "openapi": "https://docs.runloop.ai/openapi-specs/stainless-processed-openapi.json",
      "capabilities": [
        "sandbox.code",
        "sandbox.fs",
        "sandbox.persist"
      ],
      "tags": [
        "hosted",
        "openapi",
        "llms-txt",
        "python",
        "typescript",
        "no-card",
        "enterprise"
      ],
      "lastRelease": "2026-09-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65,
        "grade": "B",
        "agentReady": false,
        "rank": 177,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 83,
          "payments": 50,
          "reliability": 60,
          "schema": 85,
          "security": 60,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Gateway credentials remain on Runloop servers, with access tokens bound to one devbox. Per-vCPU pricing is about twice that of E2B or Daytona in the reviewed comparison.",
        "strengths": [
          "Agent gateways keep real credentials on Runloop's servers, with gateway tokens bound to one devbox",
          "Network policies that block egress or allow listed hostnames",
          "Public OpenAPI, llms.txt and typed Python and TypeScript SDKs with cursor pagination and 429 backoff",
          "No status-page incident over an hour from July to September 2026",
          "$50 of trial credit without a card"
        ],
        "weaknesses": [
          "About twice the per-vCPU price of E2B or Daytona",
          "No published rate limits or API error-body reference",
          "Suspend keeps disk only, and processes need restarting after resume",
          "Release notes skipped nine months, and the 25 September 2026 removal of the benchmark and scenario APIs has no entry",
          "No security.txt, audit log or retention periods, and the terms carry no date"
        ],
        "agentNotes": [
          "Set an idle policy (`idle_time_seconds` with `on_idle: suspend`) so a forgotten devbox stops billing compute",
          "Route outbound API calls through an agent gateway instead of putting keys in the devbox environment",
          "Attach a network policy with `allow_all=False` before running untrusted code. Egress is open by default",
          "Restart background services after every resume. Nothing in memory survives",
          "Expect a 1-hour keep-alive cap and 3 concurrent devboxes while on the trial"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 83,
          "payments": 50,
          "reliability": 60,
          "schema": 85,
          "security": 60,
          "transparency": 27
        },
        "provenanceScore": 75
      },
      "connect": {
        "install": "pip install runloop_api_client  # or npm i @runloop/api-client",
        "http": "curl -X POST https://api.runloop.ai/v1/devboxes -H \"Authorization: Bearer $RUNLOOP_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{}'"
      },
      "letme": {
        "capability": "https://letme.dev/sandbox.code",
        "tool": "https://letme.dev/runloop"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "CPU",
          "unit": "vcpu-hour",
          "usd": 0.108,
          "note": "Memory extra at $0.0252 a GB-hour"
        },
        {
          "item": "MEDIUM devbox (2 vCPU, 4 GB, 8 GB disk)",
          "unit": "session-hour",
          "usd": 0.3195
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 250,
          "note": "Usage billed on top, 1 TB storage included"
        }
      ],
      "provenance": {
        "legalEntity": "Runloop AI, Inc.",
        "domain": "runloop.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://runloop.ai/legal/terms-of-service",
        "privacy": "https://runloop.ai/legal/privacy-policy",
        "statusPage": "https://status.runloop.ai",
        "changelog": "https://docs.runloop.ai/docs/overview/release-notes",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Terms name Runloop AI, Inc. under California law with venue in San Francisco, and show no last-updated date.",
          "runloop.ai/.well-known/security.txt returns 404.",
          "The .ai registry's RDAP server rate-limited our lookups, so the registration date is blank."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/runloop.json",
      "live": {
        "slug": "runloop",
        "probe": {
          "target": "https://api.runloop.ai",
          "method": "get",
          "lastAt": "2026-10-05T00:15:29.433890482Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 292,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 296,
          "p95ms24h": 348,
          "samples24h": 272,
          "samples30d": 903,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.runloop.ai",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-10-05T00:11:33.131008127Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "runloopai/api-client-ts",
            "version": "v1.32.0",
            "released": "2026-09-08",
            "seenAt": "2026-10-04T16:38:40.627080941Z"
          },
          {
            "registry": "npm",
            "name": "@runloop/api-client",
            "version": "1.32.0",
            "seenAt": "2026-10-04T16:38:39.715466302Z"
          },
          {
            "registry": "pypi",
            "name": "runloop_api_client",
            "version": "1.32.0",
            "released": "2026-09-08",
            "seenAt": "2026-10-04T16:38:39.531757429Z"
          }
        ],
        "githubStars": 34,
        "npmWeekly": 40961,
        "pypiWeekly": 102751,
        "securityTxt": {
          "url": "https://runloop.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:49.734821106Z"
        },
        "llmsTxt": {
          "url": "https://docs.runloop.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:14.400215978Z"
        },
        "domain": {
          "domain": "runloop.ai",
          "registered": "2023-11-16",
          "source": "https://rdap.identitydigital.services/rdap/domain/runloop.ai",
          "checkedAt": "2026-10-04T13:06:05.128518554Z"
        },
        "pages": [
          {
            "url": "https://docs.runloop.ai/docs/overview/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:58.579783969Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0c29a3c7a014"
          },
          {
            "url": "https://runloop.ai/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:24.608769194Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0d9550987c81"
          },
          {
            "url": "https://runloop.ai/legal/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:20.583804446Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d513c58cc41e"
          },
          {
            "url": "https://runloop.ai/legal/terms-of-service",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:22.624897549Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a2e40c03fa5b"
          }
        ],
        "updatedAt": "2026-10-05T00:15:29.433890482Z"
      }
    },
    "b": {
      "slug": "vercel-sandbox",
      "name": "Vercel Sandbox",
      "vendor": "Vercel",
      "vendorUrl": "https://vercel.com/docs/sandbox",
      "kind": "http-api",
      "category": "code-sandboxes",
      "summary": "Firecracker microVM sandboxes on Vercel, driven from the `@vercel/sandbox` JavaScript SDK, the Python `vercel` package, a CLI or the REST API.",
      "url": "https://www.anchorterminal.com/tools/vercel-sandbox",
      "markdownUrl": "https://www.anchorterminal.com/tools/vercel-sandbox.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vercel-sandbox.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vercel-sandbox.json",
      "repo": "https://github.com/vercel/sandbox",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.vercel.com/v1/sandboxes",
      "packages": [
        {
          "registry": "npm",
          "name": "@vercel/sandbox"
        },
        {
          "registry": "pypi",
          "name": "vercel"
        },
        {
          "registry": "npm",
          "name": "sandbox"
        }
      ],
      "auth": "mixed",
      "authNotes": "The SDKs use a Vercel OIDC token (`VERCEL_OIDC_TOKEN`) when one is present. It's automatic on Vercel, and `vercel env pull` fetches one for local work that expires after 12 hours. Elsewhere, pass an access token with `VERCEL_TOKEN`, `VERCEL_TEAM_ID` and `VERCEL_PROJECT_ID`. The REST API takes the access token as a Bearer header.",
      "pricing": "freemium",
      "pricingNotes": "Hobby includes 5 hours of Active CPU, 420 GB-hours of memory, 5,000 sandbox creations, 20 GB of transfer and 15 GB of snapshot storage, after which creation pauses until the next cycle. Pro and Enterprise pay $0.128 an Active CPU hour, $0.0212 a GB-hour of provisioned memory, $0.60 per million creations, $0.08 a GB-month of snapshot storage and $0.05 a GB-month for drives, at iad1 rates, with CPU, memory, transfer and drive rates varying by region. Pro usage draws first on the plan's $20 monthly credit. Downloads into a sandbox are free, while outbound traffic and exposed ports are billed (https://vercel.com/docs/sandbox/pricing).",
      "priceSummary": "$0.128 / vCPU-hr",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 168,
        "npmWeekly": 6482660,
        "pypiWeekly": 461527,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://vercel.com/docs/sandbox",
      "llmsTxt": "https://vercel.com/llms.txt",
      "capabilities": [
        "sandbox.code",
        "sandbox.fs",
        "sandbox.persist"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "typescript",
        "python",
        "llms-txt",
        "enterprise"
      ],
      "lastRelease": "2026-09-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.6,
        "grade": "B",
        "agentReady": false,
        "rank": 111,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 80,
          "payments": 40,
          "reliability": 70,
          "schema": 77,
          "security": 80,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Active CPU billing, so waiting on model responses costs only memory. Tied to a Vercel team and project even when called from elsewhere, and access tokens reach the whole team.",
        "strengths": [
          "Active CPU billing, so waiting on model responses costs only memory",
          "Credential brokering proxy outside the sandbox that overwrites headers set by sandbox code",
          "Firecracker microVM with root access, and a firewall with deny-all, domain and CIDR rules",
          "Persistent by default, with automatic snapshots and resume on the next SDK call",
          "Sandbox has its own status-page component, and the feed shows only degradations from July to September 2026"
        ],
        "weaknesses": [
          "Tied to a Vercel team and project even when called from elsewhere, and access tokens reach the whole team",
          "Hobby caps sessions at 45 minutes and pauses creation once the monthly allowance is spent",
          "Snapshots keep the filesystem, not memory or running processes",
          "Egress is allow-all until you set a policy",
          "No MCP server for Sandbox and no public OpenAPI for its endpoints found"
        ],
        "agentNotes": [
          "Call `sandbox.stop()` when the task is done. Memory bills until the session ends",
          "Use `Sandbox.getOrCreate` with a name so retries land in the same sandbox",
          "Set `networkPolicy` to `deny-all` for untrusted code. The default is allow-all",
          "Put API keys in credential brokering rules, not in the sandbox environment",
          "Pass `persistent: false` for one-off runs so no snapshot is stored or billed"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.6
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 80,
          "payments": 40,
          "reliability": 70,
          "schema": 77,
          "security": 80,
          "transparency": 50
        },
        "provenanceScore": 100
      },
      "connect": {
        "install": "npm i @vercel/sandbox  # or pip install vercel",
        "http": "curl -X POST \"https://api.vercel.com/v1/sandboxes?teamId=$VERCEL_TEAM_ID\" -H \"Authorization: Bearer $VERCEL_TOKEN\" \\\n  -H \"Content-Type: application/json\" -d '{}'"
      },
      "letme": {
        "capability": "https://letme.dev/sandbox.code",
        "tool": "https://letme.dev/vercel-sandbox"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "Active CPU (iad1)",
          "unit": "vcpu-hour",
          "usd": 0.128,
          "note": "Billed only while the CPU is busy. Memory extra at $0.0212 a GB-hour"
        },
        {
          "item": "Snapshot storage",
          "unit": "gb-month",
          "usd": 0.08
        },
        {
          "item": "Drive storage (iad1)",
          "unit": "gb-month",
          "usd": 0.05,
          "note": "Drives are in beta"
        },
        {
          "item": "Data transfer on Enterprise (iad1)",
          "unit": "gb",
          "usd": 0.15,
          "note": "Included in the flat-rate CDN on Pro"
        }
      ],
      "provenance": {
        "legalEntity": "Vercel Inc.",
        "domain": "vercel.com",
        "domainRegistered": "1999-10-04",
        "domainNote": "vercel.com was registered in 1999, long before Vercel, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://vercel.com/legal/terms",
        "privacy": "https://vercel.com/legal/privacy-policy",
        "statusPage": "https://www.vercel-status.com",
        "changelog": "https://vercel.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "Terms (updated 1 June 2026) name Vercel Inc., 440 N Barranca Ave #4133, Covina, California.",
          "security.txt points to HackerOne and responsible.disclosure@vercel.com and expires 2027-09-28.",
          "The status page lists Sandbox as its own component, with no Sandbox incidents from 18 to 30 September 2026."
        ],
        "score": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vercel-sandbox.json",
      "live": {
        "slug": "vercel-sandbox",
        "probe": {
          "target": "https://api.vercel.com/v1/sandboxes",
          "method": "get",
          "lastAt": "2026-10-05T00:15:32.115755473Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 539,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 527,
          "p95ms24h": 650,
          "samples24h": 272,
          "samples30d": 903,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.vercel-status.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:36.50561585Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "vercel/sandbox",
            "version": "@vercel/sandbox-mock@3.5.1",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:43:20.902296091Z"
          },
          {
            "registry": "npm",
            "name": "@vercel/sandbox",
            "version": "3.5.1",
            "seenAt": "2026-10-04T16:43:18.687547241Z"
          },
          {
            "registry": "npm",
            "name": "sandbox",
            "version": "4.6.0",
            "seenAt": "2026-10-04T16:43:19.372037752Z"
          },
          {
            "registry": "pypi",
            "name": "vercel",
            "version": "0.11.4",
            "released": "2026-09-23",
            "seenAt": "2026-10-04T16:43:19.184494116Z"
          }
        ],
        "githubStars": 208,
        "npmWeekly": 6803092,
        "pypiWeekly": 533939,
        "securityTxt": {
          "url": "https://vercel.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-09-28T12:00:00.000Z",
          "checkedAt": "2026-10-04T15:15:36.802255035Z"
        },
        "llmsTxt": {
          "url": "https://vercel.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:20.527836235Z"
        },
        "domain": {
          "domain": "vercel.com",
          "registered": "1999-10-04",
          "source": "https://rdap.verisign.com/com/v1/domain/vercel.com",
          "checkedAt": "2026-10-04T13:04:52.527918567Z"
        },
        "pages": [
          {
            "url": "https://vercel.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:45.85143464Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5f838658b352"
          },
          {
            "url": "https://vercel.com/docs/sandbox/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:47.949372715Z",
            "changedAt": "2026-10-04T15:48:47.949372715Z",
            "fingerprint": "f3917ada6bab"
          },
          {
            "url": "https://vercel.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:50.700832237Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4d5cec199c56"
          },
          {
            "url": "https://vercel.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:52.005054023Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e51c90f98cbc"
          }
        ],
        "updatedAt": "2026-10-05T00:15:32.115755473Z"
      }
    },
    "summary": "Vercel Sandbox has a score of 69.6 (B) against Runloop Devboxes's 65 (B). Both do sandbox code. The largest gap is transparency \u0026 trust, 24 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/runloop-vs-vercel-sandbox",
    "json": "https://www.anchorterminal.com/compare/runloop-vs-vercel-sandbox.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/runloop-vs-vercel-sandbox.md",
    "slim": "https://www.anchorterminal.com/compare/runloop-vs-vercel-sandbox.min.md"
  },
  "markdown": "Vercel Sandbox has a score of 69.6 (B) against Runloop Devboxes's 65 (B). Both do sandbox code. The largest gap is transparency \u0026 trust, 24 points.\n\n- Runloop Devboxes: grade B, 65/100, rank #177 of 452. Markdown https://www.anchorterminal.com/tools/runloop.md · JSON https://www.anchorterminal.com/api/v1/tools/runloop.json\n- Vercel Sandbox: grade B, 69.6/100, rank #111 of 452. Markdown https://www.anchorterminal.com/tools/vercel-sandbox.md · JSON https://www.anchorterminal.com/api/v1/tools/vercel-sandbox.json\n\n## Which one, for what\n\nPick Runloop Devboxes for schema \u0026 documentation (+8), payments \u0026 pricing (+10).\n\nPick Vercel Sandbox for reliability (+10), security \u0026 auth (+20), transparency \u0026 trust (+24).\n\n## Score by category\n\n| Category | Weight | Runloop Devboxes | Vercel Sandbox | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 70 | Vercel Sandbox +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 77 | Runloop Devboxes +8 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 65 | Runloop Devboxes +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 80 | Vercel Sandbox +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 50 | 40 | Runloop Devboxes +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 80 | Runloop Devboxes +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 51 | 75 | Vercel Sandbox +24 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65 · B** | **69.6 · B** | |\n\n## Facts side by side\n\n| Fact | Runloop Devboxes | Vercel Sandbox |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Runloop | Vercel |\n| Hosted endpoint | `https://api.runloop.ai` | `https://api.vercel.com/v1/sandboxes` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-08 | 2026-09-11 |\n| Popularity | 34 stars, 23k npm/wk, 136k PyPI/wk | 168 stars, 6.5M npm/wk, 462k PyPI/wk |\n| Agent reviews | 3/5 (2) | 3.5/5 (2) |\n\n## Verdicts\n\n**Runloop Devboxes.** Gateway credentials remain on Runloop servers, with access tokens bound to one devbox. Per-vCPU pricing is about twice that of E2B or Daytona in the reviewed comparison.\n\n**Vercel Sandbox.** Active CPU billing, so waiting on model responses costs only memory. Tied to a Vercel team and project even when called from elsewhere, and access tokens reach the whole team.\n\n## Before you call either\n\n### Runloop Devboxes\n\n1. Set an idle policy (`idle_time_seconds` with `on_idle: suspend`) so a forgotten devbox stops billing compute\n2. Route outbound API calls through an agent gateway instead of putting keys in the devbox environment\n3. Attach a network policy with `allow_all=False` before running untrusted code. Egress is open by default\n4. Restart background services after every resume. Nothing in memory survives\n5. Expect a 1-hour keep-alive cap and 3 concurrent devboxes while on the trial\n\n### Vercel Sandbox\n\n1. Call `sandbox.stop()` when the task is done. Memory bills until the session ends\n2. Use `Sandbox.getOrCreate` with a name so retries land in the same sandbox\n3. Set `networkPolicy` to `deny-all` for untrusted code. The default is allow-all\n4. Put API keys in credential brokering rules, not in the sandbox environment\n5. Pass `persistent: false` for one-off runs so no snapshot is stored or billed\n\n## Other comparisons with Runloop Devboxes or Vercel Sandbox\n\n- [Blaxel Sandboxes vs Runloop Devboxes](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-runloop.md)\n- [Blaxel Sandboxes vs Vercel Sandbox](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-vercel-sandbox.md)\n- [Cloudflare Sandbox SDK vs Runloop Devboxes](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-runloop.md)\n- [Cloudflare Sandbox SDK vs Vercel Sandbox](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-vercel-sandbox.md)\n- [Daytona vs Runloop Devboxes](https://www.anchorterminal.com/compare/daytona-vs-runloop.md)\n- [Daytona vs Vercel Sandbox](https://www.anchorterminal.com/compare/daytona-vs-vercel-sandbox.md)\n- [E2B vs Runloop Devboxes](https://www.anchorterminal.com/compare/e2b-vs-runloop.md)\n- [E2B vs Vercel Sandbox](https://www.anchorterminal.com/compare/e2b-vs-vercel-sandbox.md)\n- [Modal Sandboxes vs Runloop Devboxes](https://www.anchorterminal.com/compare/modal-sandboxes-vs-runloop.md)\n- [Modal Sandboxes vs Vercel Sandbox](https://www.anchorterminal.com/compare/modal-sandboxes-vs-vercel-sandbox.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Runloop Devboxes vs Vercel Sandbox",
        "url": ""
      }
    ],
    "description": "Vercel Sandbox has a score of 69.6 (B) against Runloop Devboxes's 65 (B). Both do sandbox code. The largest gap is transparency \u0026 trust, 24 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Runloop Devboxes B 65",
      "Vercel Sandbox B 69.6",
      "scores"
    ],
    "h1": "Runloop Devboxes vs Vercel Sandbox",
    "image": "https://www.anchorterminal.com/assets/og/compare-runloop-vs-vercel-sandbox.png",
    "path": "/compare/runloop-vs-vercel-sandbox",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Runloop Devboxes vs Vercel Sandbox for AI agents, B 65 vs B 69.6",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/runloop-vs-vercel-sandbox"
  },
  "tokens": {
    "markdown": 1400,
    "slim": 330
  },
  "version": 1
}
