{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": true,
  "fork": true,
  "pause_resume": true,
  "persistent_disk": true,
  "whole_disk": true,
  "persist_scope": null,
  "volumes": true,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": true,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": null,
  "browser": true,
  "desktop": true,
  "computer_use": true,
  "code_interpreter": true,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": true,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": true,
  "raw_tcp_inbound": null,
  "egress_allowlist": true,
  "open_internet": true,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": true,
  "hipaa": false,
  "sso": false,
  "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": false,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": true,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": false,
  "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": true,
  "secret_proxy": true,
  "secret_proxy_any": true,
  "volume_attach": true,
  "volume_shared": true,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "instavm",
  "checked": "2026-09-30",
  "company": "InstaVM",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://instavm.io/about",
   "quote": "InstaVM ... Production control plane for AI agents"
  },
  "stage": {
   "value": "unknown",
   "source": "",
   "quote": "",
   "confidence": "low",
   "note": "No press coverage, funding announcement, Crunchbase/PitchBook profile, or YC listing found (Crunchbase org page 403s with no cached data; ycombinator.com/companies/instavm 404s; Bing/Google searches for \"InstaVM\" + funding/seed/Y Combinator return no relevant results). Careers page describes a small remote (India) team with open junior roles and no mention of investors or a funding round, consistent with either a bootstrapped or very early/unannounced pre-seed company, but nothing confirms either stage."
  },
  "accelerators": [],
  "total_funding_usd": {
   "value": null,
   "status": "unknown"
  },
  "last_round": {
   "type": null,
   "amount_usd": null,
   "date": null,
   "leads": [],
   "status": "unknown",
   "source": "",
   "quote": ""
  },
  "investors": [],
  "portfolio_listings": [],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": null,
   "source": "https://instavm.io/careers"
  },
  "note": "InstaVM (instavm.io) is a Firecracker microVM sandbox/agent-infrastructure product run by a small, apparently India-remote team (careers page lists a single Developer Relations internship in Remote India/Bengaluru and refers to 'the founders', plural, but does not name them). Its most visible public presence is GitHub (org 'instavm': coderunner, tarit, murmur, manim-studio, skills) and a company blog with several well-received Hacker News posts (one blog post hit 1143 points on HN). No TechCrunch/Bloomberg/press coverage, no Crunchbase/PitchBook/Tracxn profile content, no YC or other accelerator listing, and no investor names or revenue figures were found in ~15 minutes of searching (DuckDuckGo blocked by bot-check, Google/Bing returned no relevant hits, Crunchbase org page returned 403). Treat funding/ownership/revenue here as unresearched rather than confirmed-absent; a buyer wanting certainty should check Crunchbase/PitchBook directly (behind paywalls) or contact the company."
 },
 "id": "instavm",
 "name": "InstaVM",
 "url": "https://instavm.io/pricing",
 "category": "agent-sandbox",
 "isolation": "firecracker",
 "modes": [
  {
   "key": "on-demand",
   "label": "Firecracker microVM, per-second allocated vCPU + RAM",
   "flags": [],
   "os": [
    "linux"
   ],
   "gpu_only": false,
   "features": {
    "isolation": "firecracker"
   },
   "pricing": "resource",
   "vcpu_h": 0.0504,
   "ram_gib_h": 0.0162,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": 1,
   "max_vcpu": 8,
   "max_ram_gib": 8,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": null,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "$0.000014/vCPU-s and $0.0000045/GB-s (same as E2B). Same rates on Free and Pro. 1-8 vCPU, 256 MB-8 GB RAM (default 2 vCPU / 512 MB). No pause: VM bills until vm_lifetime_seconds expires or it is deleted; expiry destroys state unless snapshot_on_terminate. Minimum billed time unpublished."
  }
 ],
 "storage": {
  "included_disk_gib": 10,
  "disk_gib_month": 0.146,
  "disk_billed_when_stopped": true,
  "snapshot_gib_month": null,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": null,
  "ipv4_month": null,
  "ipv4_available": false,
  "internet": {
   "default": "allowlist",
   "allowlist": "Known package managers + AI APIs (list not published)",
   "gate": {
    "kind": "plan",
    "plan": "Pro",
    "usd": 100,
    "recurring": true
   },
   "evidence": [
    {
     "quote": "Egress to known package managers + AI APIs included",
     "url": "https://instavm.io/pricing"
    },
    {
     "quote": "Unrestricted egress or granular domain/CIDR allowlists",
     "url": "https://instavm.io/pricing"
    },
    {
     "quote": "Outbound traffic is blocked unless explicitly allowed. Whitelist specific domains, CIDR ranges, or enable package managers per session or VM.",
     "url": "https://instavm.io/solutions/code-execution"
    }
   ]
  }
 },
 "plans": [
  {
   "name": "Free",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 5,
   "max_session_h": null,
   "max_vcpu": 8,
   "max_ram_gib": 8,
   "sizes_allowed": null,
   "note": "$50 one-time starting credit; 100 browser sessions/mo; egress limited to known package managers + AI APIs; best-effort SLA; 10 GB volumes included.",
   "internet": "allowlist"
  },
  {
   "name": "Pro",
   "fee": 100,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 100,
   "max_session_h": null,
   "max_vcpu": 8,
   "max_ram_gib": 8,
   "sizes_allowed": null,
   "note": "$100/mo base fee, not converted to credit. 5,000 browser sessions/mo; unrestricted egress or domain/CIDR allowlists; 99.9% SLA; 24 h priority support; 10 GB volumes included.",
   "internet": "full"
  },
  {
   "name": "Enterprise",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": null,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Custom pricing; unlimited concurrency and browser sessions; 99.99% SLA; 24/7 support; custom egress policy.",
   "internet": "full"
  }
 ],
 "free": {
  "monthly_credit": 0,
  "one_time_credit": 50
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "gpu_types": [],
  "snapshot": "mem",
  "pause_resume": true,
  "fork": true,
  "persistent_disk": true,
  "volumes": true,
  "auto_stop_idle": true,
  "max_session_h": 720,
  "custom_image": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": null,
  "browser": true,
  "desktop": true,
  "computer_use": true,
  "code_interpreter": true,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": true,
  "raw_tcp_inbound": null,
  "egress_allowlist": true,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "regions": [
   "us"
  ],
  "soc2": true,
  "hipaa": false,
  "sso": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": true,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "isolation": "firecracker",
  "image_oci": true,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "egress_allowlist_level": "both",
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": "any-http",
  "volume_attach": true,
  "volume_shared": true,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "harness_api": false,
  "own_agent_api": true,
  "open_internet": true,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "perf_source": "No benchmark row: provider is not in ComputeSDK results or the HPC run (as of 2026-09-28). See research/perf-map.json.",
 "knobs": [],
 "caveats": [
  "Pricing page quotes RAM and volumes 'per GB'; treated as GiB.",
  "Pause/resume: since SDK/CLI 0.26 (changelog 2026-07-11) VMs can be suspended (managed disk snapshot, host resources freed) and resumed, optionally auto_suspend / auto_resume on share/execute/pty/ssh traffic. Resume mints a fresh vm_id. Storage price of the suspend snapshot is unpublished. Pricing page: \"No idle charges.\" Lifetime expiry still terminates and loses state unless snapshot_on_terminate.",
  "Snapshot storage price unpublished (null); volumes bill on ALLOCATED quota at $0.0002/GB-h ($0.146/GB-mo at 730 h) after 10 GB included; disk_gib_month here is that volume rate.",
  "Egress per-GB price unpublished; Free egress restricted to package managers + AI APIs.",
  "Browser session quotas per plan (100 / 5,000 / unlimited); overage price unpublished.",
  "Max 8 vCPU / 8 GB per VM (OpenAPI: 'memory_mb: VM memory in MB (128-8192)'; run-any-oci page: '1–8 vCPU Per VM'). GPU not offered/mentioned.",
  "Region: US only per the privacy policy ('All data is stored on cloud servers located in the United States.'); no state, city or region choice published. Billing granularity minimum unpublished. No benchmark data (vendor claims <200 ms boot).",
  "Re-checked 2026-09-28: instavm.io/pricing publishes vCPU, RAM and volume rates only; no per-GB egress price and no snapshot storage price (both stay null).",
  "VM lifetime is capped per plan (vm_lifetime_seconds accepts \"max\" = plan cap); cap values unpublished, so max_session_h stays null.",
  "Pro advertises 'Increased usage quotas' and 'Higher rate limits' but no numbers are published (creation rate limits unknown on both plans).",
  "OCI-image VMs: the run-any-oci page advertises '3 GB Max disk', but the OpenAPI SnapshotBuildArgs.disk_size_gb says 'Root filesystem size in GB (1-16) ... minimum 3GB, maximum 16GB'. The two disagree and the engine has no per-VM root-disk cap field, so it is not modelled; more storage goes on volumes ($0.0002/GB-h after 10 GB).",
  "Re-checked 2026-10-14: every instavm.io/docs page (including /docs and /docs/quickstart, still listed in llms.txt) returns 404; evidence now cites the /solutions pages, the pricing page, blog posts and the OpenAPI spec."
 ],
 "sources": [
  "https://instavm.io/pricing",
  "https://instavm.io/solutions/code-execution",
  "https://instavm.io/solutions/live-vm-clone",
  "https://instavm.io/solutions/run-any-oci",
  "https://instavm.io/solutions/shares-deploy",
  "https://instavm.io/solutions/ssh-instavm-dev",
  "https://instavm.io/solutions/computer-use",
  "https://api.instavm.io/openapi.json",
  "https://instavm.io/privacy",
  "https://instavm.io/blog/introducing-volumes-on-instavm-sandboxes"
 ],
 "fleet": {
  "default_max_instances": 5,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": "No card required to get started.",
  "tiers": "Free 5; Pro 100; Enterprise advertised unlimited concurrency.",
  "notes": "10/50 require Pro; 300/1,000 require Enterprise. Free egress limited to known package managers and AI APIs. Priority support response time is not a quota approval SLA.",
  "sources": [
   "https://instavm.io/pricing"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 10,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 4
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://api.instavm.io/openapi.json",
   "quote": "Explicitly auto-suspend (Tier B) a running VM: snapshot to a managed\nsnapshot, free host resources, and park it as ``suspended``. It is restored\non the next request (share/execute/pty/ssh) only if the session opted into\n``auto_resume``",
   "note": "Two opt-in mechanisms. (1) auto_suspend / auto_resume flags on VM create/update (OpenAPI VMCreateRequest; SDK README 0.26.1: 'Suspend parks a running VM by snapshotting its **memory + disk** to a managed snapshot ... resume restores it (memory and filesystem intact). Resume mints a fresh vm_id'; 'Requires the auto-suspend feature to be enabled on your InstaVM deployment'). Memory included; auto_resume wakes it on execute/pty/ssh/share traffic. The idle trigger/timeout for automatic suspend is not documented publicly (workspace/devbox runs use auto_suspend=True). (2) snapshot_on_terminate=true (VMCreateRequest field in the OpenAPI spec; the docs/concepts/snapshots page that described it is now 404) snapshots state automatically when the VM terminates or its vm_lifetime_seconds expires; restore is NOT automatic (create a new VM with snapshot_id). Default is off for both: without them, lifetime expiry destroys all state.",
   "checked": "2026-10-14"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://instavm.io/solutions/live-vm-clone",
   "quote": "vms.clone(vm_id=...) snapshots a live VM and boots a copy. The source keeps running.",
   "note": "POST /v1/vms/{vm_id}/snapshot snapshots a running VM, POST /v1/snapshots builds one from an OCI image (run-any-oci page: 'snapshots.create(oci_image=...) pulls any OCI image'), and POST /v1/vms/{vm_id}/clone snapshots a live VM and boots a copy; the clone page gives its scope as 'Disk + memory'. Whether a plain POST /snapshot also captures memory is not stated now that the docs pages are 404. New VMs boot from a snapshot with vms.create(snapshot_id=...). Explicit suspend (POST /v1/vms/{id}/suspend) is an on-demand memory+disk snapshot that resumes the same VM. Volumes also have on-demand checkpoints.",
   "checked": "2026-10-14"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://instavm.io/solutions/code-execution",
   "quote": "Outbound traffic is blocked unless explicitly allowed. Whitelist specific domains, CIDR ranges, or enable package managers per session or VM.",
   "note": "Per-session or per-VM policies via POST /v1/egress/session/{session_id} and /v1/egress/vm/{vm_id} (OpenAPI EgressPolicyRequest: allowed_domains, allowed_cidrs, allow_http, allow_https, allow_public_repos, tls_interception); egress_policy is also accepted on VM create. Plan-gated: Free = only package managers + AI APIs; Pro = 'Unrestricted egress or granular domain/CIDR allowlists' (pricing). Enforced by the platform egress proxy outside the VM.",
   "checked": "2026-10-14",
   "level": "both"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://instavm.io/solutions/shares-deploy",
   "quote": "Expose any listening port on the VM. Returns a share_id and URL. Private shares require an access_token header.",
   "note": "Ports are only exposed when you create a share for a specific port; shares can be private (access_token) or public, flipped with shares.update(is_public=True) or revoked with revoke=True; custom domains via CNAME to edge.instavm.site. No IP allowlists documented. SSH access via account-level registered keys.",
   "checked": "2026-10-14"
  },
  "guest_firewall": {
   "value": true,
   "source": null,
   "quote": null,
   "note": "Each sandbox is a Firecracker microVM with its own kernel and network stack (code-execution page: 'Own kernel, filesystem, memory, and network stack'), and you SSH in as root (ssh-instavm-dev page: 'ssh root@vm-abc123.instavm.io'), so an in-guest firewall is under your control. Not documented explicitly.",
   "checked": "2026-10-14",
   "derived": true
  },
  "secret_proxy": {
   "value": "any-http",
   "source": "https://instavm.io/blog/self-hosting-claude-managed-agents-on-instavm",
   "quote": "InstaVM routes every VM's outbound HTTPS through an egress proxy. You bind a\n vault that maps a host (for example, api.openai.com ) to a credential, and the\nproxy substitutes the real value into the request at TLS write time .",
   "note": "Secrets Vault (SDK/CLI 0.22+, changelog 2026-07-11: 'The Secrets Vault stores API keys server-side and injects them into HTTPS requests inside the VM at TLS time'). Custom hosts allowed (`vault service add --host api.example.com`), auth types bearer, api-key (custom header) and url-path (e.g. Telegram token in path); built-in templates (openai, anthropic, stripe, github, telegram...). VM sees only a placeholder; request logs per vault. The blog says 'The real key appears only on the wire, outside the VM', though the SDK README calls it 'the in-VM transparent MITM proxy', so where exactly the proxy runs is worded inconsistently. HTTPS only; no database/SSH/git-over-SSH injection documented. Plain env vars (`env=`) and `stage_env` also exist and do put values in the VM.",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": true,
   "source": "https://instavm.io/blog/introducing-volumes-on-instavm-sandboxes",
   "quote": "A Volume is durable storage you mount into a sandbox at a path. The agent reads and writes it like any directory, and the data stays after the VM is gone.",
   "note": "Mount at create (VMCreateRequest.volumes: volume_id, mount_path, mode rw/ro, checkpoint_id) or on a running VM (POST /v1/vms/{vm_id}/volumes 'Mount Vm Volume'); volume file APIs without mounting; volume checkpoints. Blog says volumes are 'backed by object storage'. Billed on allocated quota, $0.0002/GB-h after 10 GB included.",
   "checked": "2026-10-14"
  },
  "volume_shared": {
   "value": true,
   "source": "https://instavm.io/blog/introducing-volumes-on-instavm-sandboxes",
   "quote": "Mount a Volume read-write into one sandbox and\nread-only into many others, so a fleet of agents can work against the same dataset or\nindex in parallel.",
   "note": "One read-write writer plus many read-only readers concurrently (per launch blog). Multi-writer read-write sharing is not documented.",
   "checked": "2026-09-29"
  },
  "docker_inside": {
   "value": true,
   "source": "https://instavm.io/solutions/code-execution",
   "quote": "Each sandbox runs inside a Firecracker microVM — not a container. Own kernel, filesystem, memory, and network stack.",
   "note": "Not explicitly documented. Derived: each sandbox is a full Firecracker microVM with its own guest kernel and root SSH access (features.root=true), the standard requirement for running a Docker/containerd daemon inside a microVM. No InstaVM page explicitly confirms or denies running Docker inside the guest.",
   "checked": "2026-10-14"
  },
  "nested_virt": {
   "value": false,
   "source": "https://instavm.io/solutions/code-execution",
   "quote": "Each client.execute() call runs inside a Firecracker microVM with its own kernel and filesystem.",
   "note": "Not documented. Derived: Firecracker microVMs do not expose /dev/kvm or hardware virtualization extensions to the guest, so nested virtualization (running VMs/emulators inside the sandbox) is not available, matching the same architecture on comparable Firecracker providers (e.g. E2B).",
   "checked": "2026-10-14"
  },
  "anti_bot": {
   "value": false,
   "source": "https://instavm.io/solutions/computer-use",
   "quote": "browser.create_session() gives you navigate(), click(), fill(), screenshot(), and extract_elements(). CSS selectors, configurable timeouts.",
   "note": "not offered: outside the product's scope. The computer-use page describes a plain browser API (navigate, fill, click, screenshot, extract_elements) with no stealth/fingerprinting/anti-detection features; none in the pricing page or OpenAPI spec either.",
   "checked": "2026-10-14"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://instavm.io/solutions/computer-use",
   "quote": "browser.create_session() gives you navigate(), click(), fill(), screenshot(), and extract_elements(). CSS selectors, configurable timeouts.",
   "note": "not offered: outside the product's scope. No CAPTCHA-solving feature is mentioned on the computer-use page, pricing page, or in the OpenAPI spec.",
   "checked": "2026-10-14"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://instavm.io/solutions/code-execution",
   "quote": "Outbound traffic is blocked unless explicitly allowed. Whitelist specific domains, CIDR ranges, or enable package managers per session or VM.",
   "note": "Not explicitly named. Derived: InstaVM is a general-purpose code-execution/sandbox cloud with a platform egress proxy; there is no mention of residential or mobile IP pools anywhere on the site or in the OpenAPI spec, so outbound IPs are ordinary datacenter IPs.",
   "checked": "2026-10-14"
  },
  "live_resize": {
   "value": true,
   "source": "https://api.instavm.io/openapi.json",
   "quote": "VMUpdateRequest: {\"memory_mb\": {\"anyOf\":[{\"type\":\"integer\"},{\"type\":\"null\"}]}, ...}",
   "note": "PATCH /v1/vms/{vm_id} accepts a memory_mb field to update an existing VM's RAM allocation; no vcpu_count field is present in VMUpdateRequest, so CPU cannot be live-resized, only RAM. No prose docs describe this endpoint's behavior on a running vs stopped VM, hence medium confidence.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://instavm.io/blog/claude-code-sdk-on-instavm",
   "quote": "InstaVM's philosophy is different: provide a clean, flexible, and full-featured Linux environment and let the developer build. You don't need a custom template... (No Templates Required)",
   "note": "not offered: InstaVM's own marketing explicitly contrasts itself with providers that ship pre-configured coding-agent templates, and the base sandbox image (Python, Node.js, common CLI tools) does not include Claude Code, Codex, or OpenCode preinstalled. The instavm/skills GitHub repo instead ships an agent *skill* for driving InstaVM from Claude Code/Codex/Cursor/OpenCode running elsewhere.",
   "checked": "2026-09-30"
  },
  "harness_api": {
   "value": false,
   "source": "https://instavm.io/solutions/code-execution",
   "quote": "Pass any string of Python or Bash. Returns stdout, stderr, and execution_time.",
   "note": "not offered: outside the product's scope. The public API drives raw code execution/VM/browser sessions, not a specific coding harness (Claude Code/Codex/OpenCode) with prompt/stream/follow-up semantics. The agents-api (agent-builder, environments, invoke) in the OpenAPI spec drives InstaVM's own generic agent-builder product, not a coding harness.",
   "checked": "2026-10-14"
  },
  "own_agent_api": {
   "value": true,
   "source": "https://instavm.io/platform",
   "quote": "Build an agent. Sell it. Describe what your agent should do, refine it with prompts, and publish it as a paid product... instavm — agent builder // prompt \"Crawl a website, audit every page for SEO issues...\"",
   "note": "InstaVM's 'Agent Builder' platform lets you describe/refine/invoke a first-party InstaVM-hosted agent. Confirmed by undocumented endpoints in https://api.instavm.io/openapi.json: /v1/agents-api/agent-builder/prompt, /agents, /agents/{id}/invoke, /agents/{id}/runs, /environments, /sessions/{id}/events — a first-party API driving InstaVM's own agent product, separate from the code-execution/browser SDK.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://raw.githubusercontent.com/instavm/cookbooks/main/recipe-30-mcp-server-hosting/README.md",
   "quote": "Minimal SSE + JSON-RPC MCP stub at /mcp for InstaVM-hosted multi-tenant MCP servers.",
   "note": "not offered: InstaVM does not ship its own MCP server to control its sandboxes. The 'mcp-server-hosting' cookbook is an example of *hosting a third-party MCP server inside* an InstaVM VM, the opposite direction. The instavm/skills repo ships an Agent-Skills-format skill (for Claude Code/Codex/Cursor/OpenCode), not an MCP server.",
   "checked": "2026-09-30"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://api.instavm.io/openapi.json",
   "quote": "EgressPolicyRequest: {\"allow_public_repos\":{\"type\":\"boolean\"},\"allow_http\":{\"type\":\"boolean\"},\"allow_https\":{\"type\":\"boolean\"},\"tls_interception\":{\"type\":\"boolean\"},\"allowed_domains\":{\"type\":\"array\"},\"allowed_cidrs\":{\"type\":\"array\"}}",
   "note": "not offered: egress policy controls are at the protocol (HTTP vs HTTPS) and domain/CIDR level only; no HTTP method or URL-path level egress rules in the policy schema.",
   "checked": "2026-10-14"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://instavm.io/solutions/code-execution",
   "quote": "Outbound traffic is blocked unless explicitly allowed. Whitelist specific domains, CIDR ranges, or enable package managers per session or VM.",
   "note": "not offered: outside the product's scope. Egress is domain/CIDR allowlisting through a shared proxy; no fixed/dedicated outbound IP address feature is mentioned on the site, pricing page or OpenAPI spec.",
   "checked": "2026-10-14"
  },
  "arm64": {
   "value": false,
   "source": "https://instavm.io/pricing",
   "quote": "Languages Python, JS, Bash Python, JS, Bash All",
   "note": "not offered: no ARM/aarch64 architecture option is mentioned anywhere in the pricing, docs, or API reference; sandboxes are described as a single generic Firecracker microVM type with no CPU architecture selector.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://instavm.io/pricing",
   "quote": "Enterprise ... Everything in Pro, plus: Unlimited executions Dedicated infrastructure 24/7 priority support Custom SLA & contracts SOC 2 Type II compliance Dedicated account manager",
   "note": "not offered: outside the product's scope. Even the Enterprise tier offers 'Dedicated infrastructure' on InstaVM's own cloud, not a self-hosted/on-prem deployment of the InstaVM platform. (A separate, differently-architected open-source project by the same GitHub org, 'tarit', is a standalone KVM microVM platform, but it is not the Firecracker-based instavm.io SaaS this card models.)",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://instavm.io/pricing",
   "quote": "Enterprise Custom For large-scale deployments and enterprises. Everything in Pro, plus: ... Dedicated infrastructure ... Dedicated account manager",
   "note": "not offered: outside the product's scope. No plan or docs page mentions deploying InstaVM into a customer's own cloud account (VPC); Enterprise 'dedicated infrastructure' is on InstaVM's own cloud.",
   "checked": "2026-09-30"
  },
  "hipaa": {
   "value": false,
   "source": "https://instavm.io/pricing",
   "quote": "Enterprise ... SOC 2 Type II compliance Dedicated account manager Contact sales",
   "note": "not offered: the pricing page's Enterprise feature list names SOC 2 Type II explicitly but does not mention HIPAA eligibility or a BAA anywhere on the pricing, privacy, or docs pages.",
   "checked": "2026-09-30"
  },
  "sso": {
   "value": false,
   "source": "https://instavm.io/pricing",
   "quote": "Enterprise ... Custom SLA & contracts SOC 2 Type II compliance Dedicated account manager",
   "note": "not offered: no SAML/OIDC single sign-on feature is listed on the pricing page (including the Enterprise tier) or anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": false,
   "source": "https://instavm.io/privacy",
   "quote": "For users in the European Economic Area (EEA), United Kingdom, or other regions with data protection laws, we rely on appropriate legal mechanisms to transfer your data, including Standard Contractual Clauses approved by the European Commission.",
   "note": "not offered: the privacy policy addresses EU data via cross-border transfer safeguards (Standard Contractual Clauses) rather than offering an EU-region hosting/residency option; no regions list or EU-only deployment choice is documented anywhere on the site.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": true,
   "corrected_from": false,
   "source": "https://instavm.io/blog/introducing-volumes-on-instavm-sandboxes",
   "quote": "A Volume is durable storage you mount into a sandbox at a path. The agent reads and writes it like any directory, and the data stays after the VM is gone.",
   "note": "True via opt-in persistence. (1) Volumes are first-party durable storage, mountable at create or onto a running VM, billed on allocated GB-hours (10 GB included). (2) Explicit suspend/resume (SDK/CLI 0.26+) snapshots a running VM's memory + disk and restores it later (feature_evidence.snapshot_auto). Default without volumes/suspend is ephemeral: code-execution page 'State persists across calls within a session, then tears down automatically', and lifetime expiry destroys state unless snapshot_on_terminate.",
   "checked": "2026-10-14"
  },
  "memory_snapshot_fork": {
   "value": true,
   "source": "https://instavm.io/solutions/live-vm-clone",
   "quote": "vms.clone(vm_id=...) snapshots a live VM and boots a copy. The source keeps running.",
   "note": "The live clone page lists the clone's scope as 'Full state' / 'Disk + memory' and 'Source unchanged' / 'Non-destructive'; each clone is 'its own isolated Firecracker VM' with a new vm_id and session_id (POST /v1/vms/{vm_id}/clone in the OpenAPI spec). The earlier false came from the now-404 docs/concepts/snapshots page, which described on-demand snapshots as disk state; that page is gone and the clone page supersedes it. Explicit suspend (POST /v1/vms/{vm_id}/suspend) also snapshots memory + disk but resumes the same VM.",
   "checked": "2026-10-14",
   "corrected_from": false
  },
  "public_ipv4": {
   "value": false,
   "source": "https://instavm.io/solutions/ssh-instavm-dev",
   "quote": "vms.create() returns ssh_host, ssh_user, and ssh_port. Connect with standard ssh -i ~/.ssh/id_rsa user@host -p port.",
   "note": "VMs are reached via a platform-issued ssh_host (e.g. vm-abc123.instavm.io) and via share URLs / custom-domain CNAMEs (shares-deploy page), not a dedicated public IPv4 address. No InstaVM page mentions per-VM public IPv4 addresses or an IPv4 add-on. Consistent with network.ipv4_available: false. Medium confidence: the pages describe the access model but don't explicitly say 'no public IPv4'.",
   "checked": "2026-10-14"
  },
  "gpu": {
   "value": false,
   "source": "https://instavm.io/pricing",
   "quote": "$0.000014/s per vCPU (~$0.05/hr) $0.0000045/s per GB RAM (~$0.02/hr)",
   "note": "Firecracker-microVM CPU sandbox platform (code execution, browser/computer-use, volumes); no GPU, GPU type, or GPU pricing is mentioned on the pricing or solutions pages, and compute rates are vCPU/RAM only. Outside current product scope, confirmed false at medium confidence.",
   "checked": "2026-10-14"
  },
  "windows": {
   "value": false,
   "source": "https://instavm.io/solutions/computer-use",
   "quote": "Full Linux desktop for agent automation. Each VM runs a Linux desktop accessible via noVNC viewer URL.",
   "note": "Sandboxes are Firecracker Linux microVMs (code-execution page: 'Each client.execute() call runs inside a Firecracker microVM with its own kernel'); the desktop/computer-use product is explicitly a Linux desktop. No Windows machine type or OS option is offered anywhere on the site. Confirmed false, medium confidence.",
   "checked": "2026-10-14"
  },
  "macos": {
   "value": false,
   "source": "https://instavm.io/solutions/computer-use",
   "quote": "Full Linux desktop for agent automation. Each VM runs a Linux desktop accessible via noVNC viewer URL.",
   "note": "Firecracker is a Linux-only KVM-based microVM technology; the code-execution and computer-use pages describe Linux-only sandboxes. No macOS machine type is offered or mentioned. Confirmed false, medium confidence.",
   "checked": "2026-10-14"
  },
  "open_source": {
   "value": false,
   "source": "https://github.com/instavm",
   "quote": "Production control plane for AI agents",
   "note": "InstaVM's GitHub org (github.com/instavm) hosts SDKs, cookbooks and example/demo repos (coderunner, clickclickclick, manim-studio, cookbooks) but not the core sandbox/VM orchestration platform itself, which is a closed proprietary SaaS ('Production control plane for AI agents', InstaVM org description) accessed only via API/dashboard sign-up (dashboard.instavm.io). No OSI license or self-host/source-available offering for the core product is published. Confirmed false, medium confidence.",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": 720,
   "source": "https://api.instavm.io/openapi.json",
   "quote": "vm_lifetime_seconds: How long the VM will live (in seconds) from spawn time. Min: 20s, Max: 2592000s (30d), Default: 300s (5min)",
   "note": "Max: 2592000 seconds = 30 days = 720 hours, the API-enforced cap on vm_lifetime_seconds regardless of plan. This supersedes the card's caveat that plan-specific caps are unpublished: the hard ceiling is documented directly in the OpenAPI schema for session/VM creation, and no plan is described as raising it further. Lifetime expiry still destroys VM state unless snapshot_on_terminate/auto-suspend is used.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://instavm.io/pricing",
   "quote": "Advanced analytics & monitoring",
   "note": "granularity: account-only; cost: no. Pro lists 'Advanced analytics & monitoring' (dashboard). The OpenAPI spec (https://api.instavm.io/openapi.json) has no usage or billing endpoint, so per-sandbox usage is not retrievable by API.",
   "confidence": "medium",
   "checked": "2026-10-14"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": null,
   "city": null,
   "provider_region": null,
   "self_serve": true,
   "choosable": false
  }
 ],
 "locations_source": "https://instavm.io/privacy",
 "locations_quote": "All data is stored on cloud servers located in the United States.",
 "locations_checked": "2026-10-14",
 "locations_note": "Privacy policy section 5.1 (Data Location). No region list, region selector, state, city or cloud provider is published."
}