{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": false,
  "fork": true,
  "pause_resume": false,
  "persistent_disk": true,
  "whole_disk": true,
  "persist_scope": null,
  "volumes": false,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": false,
  "vm_isolation": true,
  "docker_inside": null,
  "nested_virt": null,
  "root": null,
  "systemd": null,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": false,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "open_internet": null,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": true,
  "byoc": true,
  "open_source": true,
  "soc2": true,
  "hipaa": false,
  "sso": true,
  "gpu": false,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "usage_api": false,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": false,
  "own_agent_api": true,
  "fast_boot": null,
  "strong_isolation": true,
  "ingress_rules": true,
  "guest_firewall": null,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": false,
  "volume_shared": false,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "mastra",
  "checked": "2026-09-30",
  "company": "Mastra (Mastra AI, Inc.)",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://www.ycombinator.com/companies/mastra",
   "quote": "Mastra is the easiest way to build a production AI application, built by the team that brought you Gatsby."
  },
  "stage": {
   "value": "pre-seed",
   "source": "https://www.ycombinator.com/companies/mastra",
   "quote": "\"batch\":\"W25\",\"batch_name\":\"Winter 2025\" ... \"one_liner\":\"The Javascript framework for building AI agents, from the Gatsby devs\",\"website\":\"https://mastra.ai\"",
   "confidence": "medium",
   "note": "At least pre-seed: went through Y Combinator (Winter 2025), which invests in every company it takes; no later round found.",
   "derived": true
  },
  "accelerators": [
   {
    "name": "Y Combinator",
    "batch": "Winter 2025",
    "source": "https://www.ycombinator.com/companies/mastra",
    "quote": "\"batch\":\"W25\",\"batch_name\":\"Winter 2025\" ... \"one_liner\":\"The Javascript framework for building AI agents, from the Gatsby devs\",\"website\":\"https://mastra.ai\"",
    "confidence": "high",
    "via": "research"
   }
  ],
  "total_funding_usd": {
   "value": null,
   "status": "unknown"
  },
  "last_round": {
   "type": "unknown",
   "amount_usd": null,
   "date": null,
   "leads": [],
   "status": "unknown",
   "source": "",
   "quote": ""
  },
  "investors": [
   "Moonfire"
  ],
  "portfolio_listings": [
   {
    "source": "Moonfire",
    "company": "Mastra",
    "batch": null,
    "how": "domain"
   }
  ],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": null,
   "source": ""
  },
  "note": "YC hint confirmed: the YC directory company 'Mastra' (batch W25 / Winter 2025, status Active) lists website https://mastra.ai, matching the card's domain exactly — same company. Founder/CEO Sam Bhagwat was previously cofounder of Gatsby.js (open-source React framework, scaled to $5M ARR, sold to Netlify); YC founder bio lists him as sole primary founder contact found. Mastra is an open-source (Elastic-license-style OSS core) TypeScript AI agent framework with a hosted 'Mastra Platform' (Starter/Teams/Enterprise pricing). No funding round amount, investor names, valuation, or revenue/ARR figure for Mastra itself could be confirmed or even found as a third-party estimate within the research window; this should be treated as a real data gap, not an assumption of bootstrapped status, given YC participation typically implies at least some outside capital."
 },
 "id": "mastra",
 "name": "Mastra",
 "url": "https://mastra.ai",
 "category": "paas",
 "isolation": "dedicated-vm",
 "modes": [
  {
   "key": "native",
   "label": "Native product; see regime notes",
   "flags": [
    "alt"
   ],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "resource",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": null,
   "granularity_s": null,
   "start_fee": null,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Incomplete or non-resource economics: rates remain null, never interpreted as free."
  },
  {
   "key": "starter-cpu-time",
   "label": "Mastra Platform Starter CPU-time meter",
   "flags": [
    "alt"
   ],
   "plans": [
    "Starter"
   ],
   "pricing": "sizes",
   "sizes": [
    {
     "name": "CPU hour (hardware entitlement undisclosed)",
     "vcpu": null,
     "ram_gib": null,
     "disk_gib": null,
     "hour": 0.35
    }
   ],
   "note": "First 24 CPU hours/month included; not a documented vCPU-hour or 4/8 instance."
  },
  {
   "key": "teams-cpu-time",
   "label": "Mastra Platform Teams CPU-time meter",
   "flags": [
    "alt"
   ],
   "plans": [
    "Teams"
   ],
   "pricing": "sizes",
   "sizes": [
    {
     "name": "CPU hour (hardware entitlement undisclosed)",
     "vcpu": null,
     "ram_gib": null,
     "disk_gib": null,
     "hour": 0.25
    }
   ],
   "note": "First 250 CPU hours/month included."
  },
  {
   "key": "enterprise-cpu-time",
   "label": "Mastra Platform Enterprise CPU-time meter",
   "flags": [
    "alt"
   ],
   "plans": [
    "Enterprise"
   ],
   "pricing": "sizes",
   "sizes": [
    {
     "name": "CPU hour (hardware entitlement undisclosed)",
     "vcpu": null,
     "ram_gib": null,
     "disk_gib": null,
     "hour": 0.288
    }
   ],
   "note": "Pricing page: Enterprise CPU Time 'Custom' included, 'add-on $0.00008/sec' (= $0.288/hour) beyond it. Included allowance is negotiated, so not modeled."
  },
  {
   "key": "persistent-server",
   "label": "Persistent Server 24/7 uptime add-on",
   "flags": [
    "addon"
   ],
   "pricing": "sizes",
   "sizes": [
    {
     "name": "per project",
     "vcpu": null,
     "ram_gib": null,
     "disk_gib": null,
     "hour": null,
     "month_cap": 100
    }
   ]
  }
 ],
 "storage": {
  "included_disk_gib": null,
  "disk_gib_month": null,
  "disk_billed_when_stopped": null,
  "snapshot_gib_month": null,
  "paused_ram_billed": null
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": 0.1,
  "ipv4_month": null,
  "ipv4_available": null
 },
 "plans": [
  {
   "name": "Starter",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "",
   "included_cpu_hours": 24,
   "egress_free_gib": 10
  },
  {
   "name": "Teams",
   "fee": 250,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "",
   "included_cpu_hours": 250,
   "egress_free_gib": 100
  },
  {
   "name": "Enterprise",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": false,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": ""
  }
 ],
 "free": {
  "monthly_credit": null,
  "one_time_credit": null
 },
 "features": {
  "linux": null,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "snapshot": "fs",
  "pause_resume": false,
  "fork": true,
  "persistent_disk": true,
  "volumes": null,
  "auto_stop_idle": true,
  "max_session_h": null,
  "custom_image": null,
  "docker_inside": null,
  "nested_virt": null,
  "root": null,
  "systemd": null,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": true,
  "byoc": true,
  "open_source": true,
  "soc2": true,
  "hipaa": false,
  "sso": true,
  "gpu_types": [],
  "regions": [
   "us",
   "eu"
  ],
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "own_agent_api": true,
  "harness_api": false,
  "ingress_rules": true,
  "secret_proxy": false,
  "volume_attach": false,
  "volume_shared": false,
  "isolation": "dedicated-vm",
  "image_oci": false,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "max_session_unlimited": true,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "caveats": [
  "Starter $0 with 24 CPU-hours then $0.35/hour; Teams $250 with 250 CPU-hours then $0.25/hour. Persistent 24/7 server add-on $100/project. Runs, traces, storage, gateway tokens and databases add separate fees. CPU-hour is not a guaranteed vCPU-hour or 8GB configuration; do not multiply by four without docs.",
  "Null values mean unknown, not free/unlimited. No model-token cost, tax or unverified ancillary charge included.",
  "Native browser/device/task/credit prices with unknown CPU/RAM are deliberately non-priceable. Check regime before interpreting any partial resource estimate.",
  "Enterprise CPU time: 'Custom' included hours, then 'add-on $0.00008/sec' (about $0.29/hour).",
  "Sandbox size behind the CPU-hour rate is not selectable on the default provider: 'Railway currently ignores `cpuCount()` and `memoryMB()`'; on the E2B provider templates 'default to 2 CPUs and 1,024 MB' (PlatformSandbox reference). So a CPU hour cannot be mapped to a vCPU/RAM shape.",
  "Isolation 'dedicated-vm' is the PlatformSandbox (Railway VM). Mastra Server deploys, which the Persistent Server add-on covers, run as an 'API server container' built from a generated Dockerfile.",
  "PlatformSandbox stop() only releases the client's lease: 'The VM keeps running under the environment's idle policy', so a stopped sandbox keeps consuming CPU time until idle timeout or destroy()."
 ],
 "sources": [
  "https://www.ycombinator.com/companies/mastra",
  "https://mastra.ai/",
  "https://mastra.ai/pricing",
  "https://mastra.ai/docs",
  "https://mastra.ai/llms.txt",
  "https://mastra.ai/reference/workspace/platform-sandbox.md",
  "https://mastra.ai/docs/mastra-platform/workspaces.md",
  "https://mastra.ai/docs/mastra-platform/deploy.md"
 ],
 "fleet": {
  "default_max_instances": null,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": null,
  "tiers": "Starter advertises unlimited projects/deployments/users and included CPU hours; Teams/Enterprise offer larger allowances.",
  "notes": "CPU hours and deployment count are not simultaneous CPU or machine capacity. No explicit new-account fleet concurrency, aggregate vCPU/GPU quota, verification checklist or quota SLA established.",
  "sources": [
   "https://mastra.ai/pricing"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 13,
  "source": "checked against the provider's live pricing and docs pages"
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Checkpoint recovery constructs a brand new sandbox and restores its filesystem from the latest checkpoint the platform captured for the previous sandbox with that `id`. Running processes and any filesystem writes made after the last checkpoint aren't restored.",
   "note": "Mastra platform workspace sandboxes (PlatformSandbox, backed by Railway or E2B). Opt-in: only when you pass a stable id. The platform captures filesystem checkpoints itself and the next start() with that id boots from it ('Pass a stable `id` to preserve a sandbox's filesystem across sessions or across a `destroy()`/`start()` cycle'); idle timeout destroys the sandbox. stop() does not stop the VM: 'stop() releases this process's lease without touching the remote sandbox. The VM keeps running under the environment's idle policy' (workspaces page), so it keeps billing until idle timeout or destroy(). On Railway, destroy() 'also deletes the recovery checkpoint associated with a caller-supplied recovery `id`'. Filesystem only, no memory. Exact capture trigger/frequency not documented. Mastra Server deploys sleep after ~10 min without outbound traffic, but no state snapshot is described.",
   "checked": "2026-10-14"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Call `snapshot()` after a filesystem update to capture the configured recovery checkpoint immediately.",
   "note": "Filesystem only; one recovery checkpoint per id (overwritten), not a list of named snapshots. New sandboxes can boot from it by reusing the id, or from a named seedCheckpointName ('boot-only fallback'). Also content-addressed reusable Template() builds. No snapshot of Mastra Server deploys.",
   "checked": "2026-09-29"
  },
  "own_agent_api": {
   "value": true,
   "source": "https://mastra.ai/docs/harness/agent-controller.md",
   "quote": "`AgentController` is a shared runtime host for interactive agent applications. It coordinates modes, models, storage, workspaces, tool approvals, subagents, and channels.",
   "note": "Mastra's own agent framework only (your Mastra agents, Mastra Code/Factory), hosted on Mastra Server and driven over its built-in HTTP API (/api/agents/*) and MastraClient / AgentController sessions: send messages, subscribe to events, steer, queue follow-ups, approvals, list/switch threads; Durable Agents let clients reconnect to a run's stream. Beta. The agent runs in the Server deploy, not inside the PlatformSandbox; no API to drive Claude Code/Codex/OpenCode in a sandbox (Mastra Code serves ACP locally over stdio).",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": false,
   "source": "https://mastra.ai/docs/harness/agent-controller.md",
   "quote": "`AgentController` is a shared runtime host for interactive agent applications. It coordinates modes, models, storage, workspaces, tool approvals, subagents, and channels.",
   "note": "Mastra's own agent framework only (your Mastra agents, Mastra Code/Factory), hosted on Mastra Server and driven over its built-in HTTP API (/api/agents/*) and MastraClient / AgentController sessions: send messages, subscribe to events, steer, queue follow-ups, approvals, list/switch threads; Durable Agents let clients reconnect to a run's stream. Beta. The agent runs in the Server deploy, not inside the PlatformSandbox; no API to drive Claude Code/Codex/OpenCode in a sandbox (Mastra Code serves ACP locally over stdio).",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "**networkIsolation** (`'ISOLATED' | 'PRIVATE'`): Network mode. 'ISOLATED' (default) allows outbound internet only. 'PRIVATE' joins the platform environment's private network.",
   "note": "Both platform sandbox network modes allow outbound internet; no host/IP allowlist or no-internet mode documented for platform sandboxes or Server deploys. (Framework LocalSandbox has allowNetwork:false via Seatbelt/Bubblewrap, but that is self-hosted, inside the machine.)",
   "checked": "2026-09-29"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": null,
   "note": "No provider-side egress rules of any kind documented.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://mastra.ai/docs/mastra-platform/studio.md",
   "quote": "By default, every Studio deploy on Mastra platform is protected by platform auth. Members of your platform organization sign in with their platform account, and no one else can access the deployed Studio.",
   "note": "Studio UI only: 'Platform auth applies to the Studio UI only. Your server's API routes are governed by your own server.auth configuration, or remain open if you haven't set one.' Server deploys get a public URL (custom domains); auth is app-level in your code. Platform sandboxes expose no ports (exec over a WebSocket lease); PRIVATE mode joins the environment's private network.",
   "checked": "2026-09-29"
  },
  "secret_proxy": {
   "value": false,
   "source": "https://mastra.ai/docs/mastra-platform/environments.md",
   "quote": "Environment-scoped variables are the stored variables described on the [Deploy](https://mastra.ai/docs/mastra-platform/deploy) page.",
   "note": "Secrets are environment variables on the Server deploy (dashboard-managed) and env passed into sandboxes ('Environment variables baked into the sandbox at creation time'). Template setEnvs({ephemeral:true}) keeps build credentials out of the persisted template, but they are still visible to the build. No injecting egress proxy documented. The card's 'gateway tokens' fee is a model gateway billed by token; no doc says it keeps provider keys out of a sandbox.",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": false,
   "source": "https://mastra.ai/docs/mastra-platform/workspaces.md",
   "quote": "Every workspace exposes two capabilities:",
   "note": "A workspace = one object-storage bucket (PlatformFilesystem API) + on-demand sandboxes; plus hosted databases. No block/network volumes for Server deploys or sandboxes.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": false,
   "source": "https://mastra.ai/docs/mastra-platform/workspaces.md",
   "quote": "`PlatformFilesystem` is also a separate provider: configuring both providers doesn't mount the environment bucket inside the sandbox.",
   "note": "The per-environment bucket is shared read-write (optionally readOnly) by every request and agent of that environment, but only through the file API (read/write/list/delete/move), not mounted into sandboxes. The framework can FUSE-mount S3/GCS into third-party sandboxes (Daytona, E2B...) that support mounts; that is bring-your-own storage.",
   "checked": "2026-09-29"
  },
  "isolation": {
   "value": "dedicated-vm",
   "source": "https://mastra.ai/integrations/sandboxes/railway.md",
   "quote": "Each sandbox is an isolated Debian Linux VM provisioned on demand through the Railway TypeScript SDK.",
   "note": "PlatformSandbox (Mastra's own hosted sandbox) defaults to the Railway provider, which runs each sandbox as its own dedicated VM; exact hypervisor (Firecracker/KVM/etc.) not disclosed. The 'e2b' alternate provider uses E2B's Firecracker microVMs, but Railway is the documented default. Applies to PlatformSandbox only: `mastra deploy` Server deploys (what the Persistent Server add-on keeps up) run as a container built from a generated Dockerfile ('in-process inside the API server container', deploy page), not a dedicated VM.",
   "checked": "2026-10-14"
  },
  "image_oci": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "`Template()` supports `cpuCount`, `memoryMB`, `runCmd`, `setWorkdir`, `setEnvs`, `aptInstall`, `pipInstall`, and `npmInstall`.",
   "note": "Sandboxes start from a pre-built provider base template customized via an apt/pip/npm-install builder API, not by pointing at a user-supplied Docker/OCI image.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://mastra.ai/docs/sandbox/computer.md",
   "quote": "[`DaytonaSandbox`](https://mastra.ai/integrations/sandboxes/daytona) and [`E2BDesktopSandbox`](https://mastra.ai/integrations/sandboxes/e2b-desktop) support this capability. Other sandbox backends don't register the computer tools.",
   "note": "Mastra's own PlatformSandbox does not expose a desktop/computer capability; only bring-your-own-account third-party sandbox integrations (Daytona, E2B Desktop) do.",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": false,
   "source": "https://mastra.ai/docs/sandbox/overview.md",
   "quote": "A sandbox gives your agent an isolated environment where it can run commands, execute code, install dependencies, and manage processes.",
   "note": "not offered: no managed/real browser is documented as part of Mastra's own PlatformSandbox or Server product.",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://mastra.ai/docs/sandbox/computer.md",
   "quote": "Other sandbox backends don't register the computer tools.",
   "note": "Screenshot/click/keyboard computer-use tools only exist for third-party Daytona/E2B Desktop integrations, not Mastra's own PlatformSandbox.",
   "checked": "2026-09-30"
  },
  "anti_bot": {
   "value": false,
   "source": "https://mastra.ai/docs/sandbox/overview.md",
   "quote": "A sandbox gives your agent an isolated environment where it can run commands, execute code, install dependencies, and manage processes.",
   "note": "not offered: outside the product's scope (a command/code-execution sandbox and app server, not a browsing/anti-detection product).",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://mastra.ai/docs/sandbox/overview.md",
   "quote": "A sandbox gives your agent an isolated environment where it can run commands, execute code, install dependencies, and manage processes.",
   "note": "not offered: outside the product's scope.",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "'ISOLATED' (default) allows outbound internet only.",
   "note": "Cloud VM outbound access via Railway/E2B infrastructure; no residential/mobile/static-IP proxying documented.",
   "checked": "2026-09-30"
  },
  "ssh": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "`executeCommand` runs over the direct-exec data plane (a WebSocket to the Railway tcp-proxy)",
   "note": "Command execution is via an API/WebSocket exec lease, not SSH; no SSH access documented.",
   "checked": "2026-09-30"
  },
  "snapshot": {
   "value": "fs",
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Checkpoint recovery constructs a brand new sandbox and restores its filesystem from the latest checkpoint the platform captured for the previous sandbox with that `id`. Running processes and any filesystem writes made after the last checkpoint aren't restored.",
   "note": "Filesystem-only checkpoint; running processes are not restored.",
   "checked": "2026-09-30"
  },
  "fork": {
   "value": true,
   "source": "https://mastra.ai/integrations/sandboxes/railway.md",
   "quote": "Clone a running sandbox's filesystem into a new, independent sandbox: a fresh boot, not live processes.",
   "note": "PlatformSandbox.clone()/RailwaySandbox.fork() build a fleet of sandboxes from a template/existing sandbox's filesystem.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": true,
   "source": "https://mastra.ai/integrations/sandboxes/railway.md",
   "quote": "### Forking a running sandbox Clone a running sandbox's filesystem into a new, independent sandbox: a fresh boot, not live processes.",
   "note": "The parent sandbox continues running while a clone is created from its filesystem.",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://mastra.ai/integrations/sandboxes/railway.md",
   "quote": "Clone a running sandbox's filesystem into a new, independent sandbox: a fresh boot, not live processes.",
   "note": "Forks copy filesystem state only; the clone boots fresh rather than inheriting running processes/memory.",
   "checked": "2026-09-30"
  },
  "pause_resume": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Checkpoint recovery constructs a brand new sandbox and restores its filesystem from the latest checkpoint the platform captured for the previous sandbox with that `id`.",
   "note": "PlatformSandbox uses a destroy-then-recreate-from-checkpoint model on idle timeout rather than pausing/resuming a live VM.",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": true,
   "source": "https://mastra.ai/reference/workspace/sandbox.md",
   "quote": "Starts the sandbox and is called automatically by `workspace.init()` or the first `executeCommand()` call.",
   "note": "A stopped sandbox is lazily started ('ensureRunning()') by the next command call rather than requiring a separate manual start step.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": true,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Pass a stable `id` to opt into checkpoint recovery so a new sandbox boots from the previous one's filesystem.",
   "note": "Requires passing a stable id and relies on checkpoint recovery; sandboxes without a stable id are fully ephemeral.",
   "checked": "2026-09-30"
  },
  "auto_stop_idle": {
   "value": true,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "**idleTimeoutMinutes** (`number`): How long the sandbox stays alive with no activity before the platform destroys it.",
   "note": null,
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "For E2B, `cpuCount()` and `memoryMB()` set the template build resources inherited by sandboxes created from the exact template",
   "note": "CPU/RAM sizing is set at template-build time for new sandboxes, not adjustable on a running sandbox.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://mastra.ai/docs/connections/acp.md",
   "quote": "ACP is useful for coding agents such as Claude Code, Cline, OpenCode, Amp, Codex, or any other executable that implements ACP over standard input and output.",
   "note": "Mastra's framework can drive third-party coding agents (Claude Code, OpenCode, Codex, etc.) over ACP, but you must install/bring the agent binary yourself; none are preinstalled or offered as ready-made sandbox templates.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://mastra.ai/docs/connections/mcp.md",
   "quote": "Use [`MCPServer`](https://mastra.ai/reference/tools/mcp-server) to expose Mastra agents, tools, workflows, prompts, and resources to other MCP-compatible systems.",
   "note": "MCPServer is a library for exposing your own Mastra app as an MCP server; no first-party MCP server is shipped specifically to control Mastra's own sandboxes/platform.",
   "checked": "2026-09-30"
  },
  "lang_python": {
   "value": true,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Sandboxes boot from a pre-built provider template with Python 3, Node 22, TypeScript, tsx, and common build tooling already installed.",
   "note": null,
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": true,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Sandboxes boot from a pre-built provider template with Python 3, Node 22, TypeScript, tsx, and common build tooling already installed.",
   "note": null,
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "`executeCommand` runs over the direct-exec data plane (a WebSocket to the Railway tcp-proxy)",
   "note": "Sandboxes are reached only through the platform's own exec API/WebSocket lease, not a public IPv4 address.",
   "checked": "2026-09-30"
  },
  "inbound_https": {
   "value": true,
   "source": "https://mastra.ai/docs/mastra-platform/deploy.md",
   "quote": "One command builds your project and validates it before deploying, plus creates the platform project and environment on your first run, deploys, streams build logs, and prints your public URL once the deploy is serving traffic.",
   "note": "Applies to Mastra Server deploys (public HTTPS URL), not to on-demand PlatformSandbox instances which have no exposed ports.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "'ISOLATED' (default) allows outbound internet only.",
   "note": "No fixed/static outbound IP address is documented for sandboxes.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": "Sandboxes boot from a pre-built provider template with Python 3, Node 22, TypeScript, tsx, and common build tooling already installed.",
   "note": "not offered: no GPU machine option is documented anywhere in the Mastra platform/sandbox docs.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://mastra.ai/integrations/sandboxes/railway.md",
   "quote": "Each sandbox is an isolated Debian Linux VM provisioned on demand through the Railway TypeScript SDK.",
   "note": "not offered: outside the product's scope (Linux-only sandboxes).",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://mastra.ai/integrations/sandboxes/railway.md",
   "quote": "Each sandbox is an isolated Debian Linux VM provisioned on demand through the Railway TypeScript SDK.",
   "note": "not offered: outside the product's scope (Linux-only sandboxes).",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://mastra.ai/reference/workspace/platform-sandbox.md",
   "quote": null,
   "note": "No ARM/architecture option is documented for PlatformSandbox or Server deploys; only x86 Debian VM templates are described.",
   "checked": "2026-09-30"
  },
  "soc2": {
   "value": true,
   "source": "https://mastra.ai/pricing",
   "quote": "Multiple teams, SSO, and SOC 2 docs",
   "note": "SOC 2 documentation is offered at the Teams pricing tier.",
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": true,
   "source": "https://mastra.ai/docs/mastra-platform/regions.md",
   "quote": "Mastra platform offers two residency zones today, `us` and `eu`, backed by specific compute regions on Railway.",
   "note": null,
   "checked": "2026-09-30"
  },
  "hipaa": {
   "value": false,
   "source": "https://trust.mastra.ai",
   "quote": "We are happy to share that we received our SOC 2 Type II Report in October 2025.",
   "note": "Mastra's Trust Center (Vanta-hosted) lists SOC 2 Type II as its only compliance report and has no HIPAA/BAA resource, control, or subprocessor entry. A Mastra healthcare case study describes a *customer's* HIPAA-compliant copilot built on Mastra (https://mastra.ai/healthcare: 'How Chapter Built a HIPAA-Compliant Copilot to Support 500K Medicare Enrollees'), but that is the customer's own compliance work, not a Mastra-offered BAA/HIPAA-eligible service; no BAA or HIPAA eligibility is advertised anywhere on mastra.ai or the trust center.",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": "none",
   "source": "https://docs.railway.com/sandboxes",
   "quote": "On Hobby and Pro, set idleTimeoutMinutes: 0 for an infinite TTL... The sandbox remains billable until you destroy it with destroy(), await using, or railway sandbox destroy.",
   "note": "Mastra's PlatformSandbox exposes idleTimeoutMinutes (auto-destroy after inactivity) but no maximum total session/runtime cap is documented anywhere in Mastra's sandbox docs. The default Railway backend explicitly only enforces an idle timeout (disableable to infinite on Hobby/Pro) with no separate hard session-duration ceiling; a sandbox with fresh activity or idleTimeoutMinutes:0 can run indefinitely until explicitly destroyed. The 'Persistent Server' 24/7 uptime add-on on the card's own pricing similarly implies no fixed session cap for that mode.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://mastra.ai/reference/client-js/mastra-client",
   "quote": "The Mastra Client SDK provides methods to retrieve traces, logs, workflows, agents, tools, and feedback, but no endpoint for usage metrics or billing data. The observability API returns traces, scores, and feedback—not billable usage quantities or costs.",
   "note": "granularity: account-only; cost: no; Mastra's pricing is based on CPU hours, storage, runs, traces, and other resources, but no public REST API, SDK call, or CLI command exists to retrieve per-sandbox or per-project usage programmatically. Observability/tracing APIs capture execution traces only, not usage metering. Usage tracking appears limited to the Mastra platform dashboard.",
   "confidence": "high",
   "checked": "2026-10-01"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": "OR",
   "city": "Portland",
   "provider_region": "pdx",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "VA",
   "city": "Ashburn",
   "provider_region": "iad",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "US",
   "state": "CA",
   "city": "San Francisco",
   "provider_region": "sfo",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "NL",
   "state": null,
   "city": "Amsterdam",
   "provider_region": "ams",
   "self_serve": true,
   "choosable": true
  }
 ],
 "locations_source": "https://mastra.ai/docs/mastra-platform/regions.md",
 "locations_quote": "Mastra platform offers two residency zones today, `us` and `eu`, backed by specific compute regions on Railway. The residency selector offers four Railway regions across two zones.",
 "locations_checked": "2026-10-01"
}