{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": true,
  "fork": true,
  "pause_resume": true,
  "persistent_disk": false,
  "whole_disk": true,
  "persist_scope": null,
  "volumes": true,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": false,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": null,
  "systemd": null,
  "browser": true,
  "desktop": true,
  "computer_use": true,
  "code_interpreter": true,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": true,
  "anti_bot": true,
  "captcha_solving": true,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": true,
  "open_internet": null,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": null,
  "hipaa": true,
  "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": null,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": true,
  "mcp_server": true,
  "usage_api": false,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": false,
  "own_agent_api": false,
  "fast_boot": null,
  "strong_isolation": true,
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": true,
  "volume_shared": false,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "solari",
  "checked": "2026-09-30",
  "company": "Solari",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "",
   "quote": ""
  },
  "stage": {
   "value": "unknown",
   "source": "",
   "quote": "",
   "confidence": "low",
   "note": "No press, Crunchbase/YC listing, or company statement about funding was found. getsolari.com's marketing site (Framer-built, 'Engineered by Pinetree') has no About/team/press page; site nav has no investor or company-history content. A YC directory lookup for 'solari' returned 404, and web searches for 'getsolari funding/seed/Y Combinator' surfaced no matching results (only unrelated entities: Santiago/Pablo Solari the footballers, Solari Report newsletter, Solari SpA the Italian clock/display company)."
  },
  "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": ""
  },
  "note": "No public information on ownership, accelerator participation, funding, or revenue could be found for Solari (getsolari.com) within the search budget. Its marketing site provides no About/team/press page and is credited to a design/build shop ('Engineered by Pinetree'). Could not confirm whether it is an independent startup, bootstrapped, or otherwise; 'independent' is a low-confidence default, not a confirmed fact. Buyers should treat all company-background fields here as unverified."
 },
 "id": "solari",
 "name": "Solari",
 "url": "https://docs.getsolari.com/pricing",
 "category": "agent-sandbox",
 "isolation": "vm",
 "modes": [
  {
   "key": "on-demand",
   "label": "On-demand",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "isolation": "vm"
   },
   "pricing": "resource",
   "vcpu_h": 0.0245,
   "ram_gib_h": 0.0077,
   "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": 8,
   "max_ram_gib": 16,
   "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": "Professional sandbox rate only. Desktop VM adds $0.02/h; not included in this mode.",
   "plans": [
    "Professional"
   ]
  },
  {
   "key": "starter",
   "label": "Starter tier rate",
   "plans": [
    "Starter"
   ],
   "pricing": "resource",
   "vcpu_h": 0.035,
   "ram_gib_h": 0.011,
   "max_vcpu": 8,
   "max_ram_gib": 16,
   "flags": []
  },
  {
   "key": "free-tier",
   "label": "Free tier rate",
   "plans": [
    "Free"
   ],
   "pricing": "resource",
   "vcpu_h": 0.0525,
   "ram_gib_h": 0.0165,
   "max_vcpu": 8,
   "max_ram_gib": 16,
   "flags": []
  },
  {
   "key": "enterprise",
   "label": "Enterprise published rate",
   "plans": [
    "Enterprise"
   ],
   "pricing": "resource",
   "vcpu_h": 0.0175,
   "ram_gib_h": 0.0055,
   "max_vcpu": 8,
   "max_ram_gib": 16,
   "flags": [
    "sales"
   ]
  }
 ],
 "storage": {
  "included_disk_gib": 4,
  "disk_gib_month": null,
  "disk_billed_when_stopped": null,
  "snapshot_gib_month": 0.05,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": null,
  "ipv4_month": null,
  "ipv4_available": null
 },
 "plans": [
  {
   "name": "Professional",
   "fee": 200,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 200,
   "per_seat": null,
   "concurrency": 10,
   "max_session_h": 24,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Unknown limits are not promises of unlimited capacity."
  },
  {
   "name": "Free",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 3,
   "per_seat": 0,
   "concurrency": 1,
   "max_session_h": 1,
   "note": "Only with the Free-tier rates ($0.0525/vCPU-h, $0.0165/GB-h); bind via a mode with plans:[\"Free\"]."
  },
  {
   "name": "Starter",
   "fee": 20,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 20,
   "per_seat": 0,
   "concurrency": 2,
   "max_session_h": 5,
   "note": "Starter rates $0.035/vCPU-h, $0.011/GB-h."
  },
  {
   "name": "Enterprise",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": false,
   "included_usd": null,
   "per_seat": 0,
   "concurrency": 50,
   "max_session_h": null,
   "note": "Custom fee; published rates $0.0175/vCPU-h, $0.0055/GB-h 'unless your contract sets different ones'; HIPAA; unlimited session."
  }
 ],
 "free": {
  "monthly_credit": null,
  "one_time_credit": null
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "snapshot": "mem",
  "pause_resume": true,
  "fork": true,
  "persistent_disk": false,
  "volumes": true,
  "auto_stop_idle": true,
  "max_session_h": 24,
  "custom_image": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": null,
  "systemd": null,
  "browser": true,
  "desktop": true,
  "computer_use": true,
  "code_interpreter": true,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": true,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": null,
  "hipaa": true,
  "sso": false,
  "gpu_types": [],
  "regions": [
   "us"
  ],
  "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": true,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": true,
  "mcp_server": true,
  "isolation": "vm",
  "image_oci": false,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "ingress_rules": true,
  "guest_firewall": true,
  "volume_attach": true,
  "volume_shared": false,
  "anti_bot": true,
  "captcha_solving": true,
  "egress_ip_type": "datacenter",
  "harness_api": false,
  "own_agent_api": false,
  "secret_proxy": false,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "knobs": [],
 "caveats": [
  "Public tiered list rates, shared credits cover browsers, sandboxes and desktop VMs. Engine card represents Professional sandbox only; other tier rates retained as raw regimes because freely combining tier-specific rates with any plan would underprice. Professional only permits 10 concurrent sandboxes.",
  "Features set to null were not verified. No sandbox was purchased or tested; feature/performance statements are documentation claims. Null maximums are unknown unless a cited note explicitly states unlimited.",
  "A complete monthly bill requires known snapshot/egress/plan limits; do not silently treat missing ancillary charges as free.",
  "isolation:\"shared\" tier (process tree in a 4-vCPU VM shared with your own shared sandboxes; cpu<=4, memMb<=2048, default 512) is described as 'cheaper' but has no published separate rate; 'hardened' = dedicated with all outbound blocked. Parked sandboxes (parkAfterMs) keep their concurrency slot and appear to keep billing; only full pause stops billing. Desktop VMs add $0.02/h for the live screen."
 ],
 "sources": [
  "https://docs.getsolari.com/pricing",
  "https://getsolari.com/",
  "https://docs.getsolari.com/sandboxes"
 ],
 "fleet": {
  "default_max_instances": 1,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": null,
  "tiers": "Sandboxes/VMs: Free 1, Starter 2, Professional 10, Enterprise 50+. Browsers separately 3/20/150/150+.",
  "notes": "Default refers to compute sandboxes, not browser concurrency. 10 machines requires Professional, 50 Enterprise, 300/1,000 custom confirmation. Stealth browsers have a separate lower 0/10/50/75 ceiling.",
  "sources": [
   "https://docs.getsolari.com/pricing"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 20,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 2
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "When that time passes with no activity, lifecycle decides what happens: onTimeout: \"pause\" (the default) saves its state and pauses it, while onTimeout: \"kill\" shuts it down. If you don't set timeoutMs , it defaults to 30 minutes.",
   "note": "Default idle timeout (30 min) pauses and saves full state (memory + disk, 'a full pause restores from durable storage'); resumes on connect(). Opt-in extras: hibernateAfterParkedMs escalates a park to a full pause, checkpointEveryMs takes periodic durable checkpoints (min 60 s). Same for desktop VMs.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://docs.getsolari.com/snapshots",
   "quote": "snapshot(name?) saves the machine's current state and gives you back a snapshot id. The machine keeps running the whole time",
   "note": "Memory included ('it carries its own complete disk and memory image'); revert(snapshotId) rewinds in place; create({fromSnapshot}) boots any number of new machines (fork); snapshots can be promoted to templates. Machine must be running (409 on paused). Works for sandboxes and VMs. $0.05/GB-month above 10 GB from 2026-10-01.",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "\"hardened\" is the same, with all outbound network blocked.",
   "note": "Only an all-or-nothing no-internet mode (isolation:\"hardened\"); no domain or IP allow/deny lists documented.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "The URL is signed: it carries a one-hour slr_token query parameter.",
   "note": "Ports exposed only on request via previewUrl(port) / GET /sandboxes/:id/ports/:port; hostname <label>-<port>.preview.getsolari.com; 401 without a valid token. 'A port can also be opened with no token at all' (direct HTTP call with public=1, not yet in the SDK): no expiry, 'reachable by anyone who has or guesses the hostname'. No IP allowlists or security groups.",
   "checked": "2026-10-14"
  },
  "guest_firewall": {
   "value": true,
   "source": null,
   "quote": null,
   "note": "isolation:\"dedicated\"/\"hardened\" is a microVM of your own (docs); examples run apt-get as the default user, so root. isolation:\"shared\" is a namespace+cgroup context in a shared VM; NET_ADMIN unknown.",
   "checked": "2026-09-29",
   "derived": true
  },
  "volume_attach": {
   "value": true,
   "source": "https://docs.getsolari.com/volumes",
   "quote": "A volume is durable storage that outlives any single machine. Create one once, then attach it to a sandbox at start-up and read and write it at a path of your choosing.",
   "note": "Beta; sandboxes only (all isolation modes), not yet desktops. Attach at create time only. Backed by GCS via host-side gcsfuse.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": true,
   "source": "https://docs.getsolari.com/volumes",
   "quote": "each volume is single-attach — mounting one that is already attached to a different machine returns a 409",
   "note": "not offered: a volume mounts on one machine at a time ('Detach it (stop or release the other machine) before mounting it elsewhere.'). Sharing is sequential only: data persists across machines that attach it in turn ('a folder of data that many machines read and write over time').",
   "checked": "2026-10-14"
  },
  "anti_bot": {
   "value": true,
   "source": "https://docs.getsolari.com/stealth",
   "quote": "Stealth mode makes your browser look like an ordinary person's, so it gets through sites that block bots.",
   "note": null,
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": true,
   "source": "https://docs.getsolari.com/captcha",
   "quote": "Solari solves common captcha widgets for you: reCaptcha v2/v3, hCaptcha, and Cloudflare Turnstile.",
   "note": "Requires stealth: true; billed $0.005-$0.01/solve depending on plan.",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://docs.getsolari.com/proxies",
   "quote": "Route your browser through an IP in the country you choose. Pick from three kinds of IP (rotating residential, static ISP, and mobile)...",
   "note": "The residential/static/mobile proxy tiers are a browser-session add-on (sessions.create({proxy})), not the default egress for sandboxes/VMs. Absent a proxy, machines egress on ordinary cloud datacenter IPs; no datacenter IP details (static vs shared) are published.",
   "checked": "2026-09-30"
  },
  "ssh": {
   "value": false,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "pty.create opens one you can write to, resize, and read from. It's what powers the console's web terminal.",
   "note": "not offered: access is via the SDK/API control channel (commands, PTY, files) rather than a standard SSH server/protocol; no SSH endpoint or key-based SSH access is documented.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": true,
   "source": "https://docs.getsolari.com/snapshots",
   "quote": "snapshot(name?) saves the machine's current state and gives you back a snapshot id. The machine keeps running the whole time",
   "note": "create({fromSnapshot}) then boots any number of new machines from that snapshot while the original keeps running untouched.",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": true,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "onTimeout: \"pause\" (the default) saves its state and pauses it... resumes on connect().",
   "note": "A paused/idle sandbox or VM automatically resumes the moment connect() is called again.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": false,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "onTimeout: \"kill\" shuts it down.",
   "note": "There is no separate stop/start cycle with a durable disk: killing a sandbox/VM terminates it. Data only survives via pause (full state save/resume), an explicit snapshot, or a separately attached volume — not as an always-on persistent root disk.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://docs.getsolari.com/desktops",
   "quote": "Ask for more than that and the create is rejected with a 400 — it is not quietly reduced. Set cpu and memMb at create time.",
   "note": "Size (cpu/memMb) is fixed at create time and only 'sticks' across pause/resume/snapshot; there is no API to change CPU/RAM of a running machine in place.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://docs.getsolari.com/templates",
   "quote": "base: the standard headless sandbox (the sandbox default). default / workstation: the standard Ubuntu desktop — XFCE with Chrome, LibreOffice and VS Code.",
   "note": "not offered: only plain OS/desktop templates (base, workstation) are documented; no Claude Code/Codex/OpenCode or other coding-agent template is listed.",
   "checked": "2026-09-30"
  },
  "harness_api": {
   "value": false,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "A sandbox is a machine for running code and automation, with no screen: run commands, execute code that keeps its state, watch files, and snapshot and fork.",
   "note": "not offered: the API drives generic commands/PTY/code-exec, not a first-party API for prompting/streaming a preinstalled coding agent.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://getsolari.com/",
   "quote": "Cloud infrastructure for agents and automation: stealthy Chrome browsers, full Linux VMs, and fast code sandboxes.",
   "note": "not offered: Solari provides infrastructure (browsers/VMs/sandboxes) that your agent drives; it does not ship its own first-party browsing/computer-use/research agent with a task API.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": true,
   "source": "https://docs.getsolari.com/mcp",
   "quote": "The Solari MCP server exposes 37 tools over the Model Context Protocol.",
   "note": "Hosted endpoint at https://mcp.getsolari.com/mcp or local via `npx @solarisdk/mcp`.",
   "checked": "2026-10-14"
  },
  "lang_python": {
   "value": true,
   "source": "https://docs.getsolari.com/languages",
   "quote": "Python solari-sandbox, solari-desktop Full: computer-use, PTY, viewer, snapshots",
   "note": "TypeScript and Python SDKs are at full parity; runCode also executes Python inside sandboxes.",
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": true,
   "source": "https://docs.getsolari.com/languages",
   "quote": "TypeScript @solarisdk/sandbox, @solarisdk/desktop Full: computer-use, PTY, viewer, snapshots",
   "note": null,
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "The URL is signed: it carries a one-hour slr_token query parameter.",
   "note": "not offered: exposed ports are reached only via preview URLs (<label>-<port>.preview.getsolari.com, signed or opened with no token), not a dedicated public IPv4 address per machine.",
   "checked": "2026-10-14"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "\"hardened\" is the same, with all outbound network blocked.",
   "note": "not offered: only an all-or-nothing outbound block (isolation: \"hardened\") is documented; no HTTP method/path-level egress rule engine exists.",
   "checked": "2026-09-30"
  },
  "secret_proxy": {
   "value": false,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "Credentials are passed per-call and never touch a shell, so there is nothing to escape or inject.",
   "note": "not offered: this applies narrowly to the git namespace's own credential params, not a general first-party HTTP proxy that injects secrets for arbitrary or AI-provider APIs. Standard access is via API key / env vars.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://docs.getsolari.com/proxies",
   "quote": "tier \"static\" (\"static\": one fixed IP that stays the same all session)",
   "note": "The fixed/static IP tier is a browser-session proxy add-on, not a static outbound IP for sandboxes/VMs; no static egress IP for sandboxes/VMs is documented.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://docs.getsolari.com/pricing",
   "quote": "Sandboxes & VMs Billed by size (vCPUs and memory), so a small machine costs a fraction of a large one.",
   "note": "not offered: pricing/sizing is CPU+RAM only; no GPU instance type is listed anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://docs.getsolari.com/templates",
   "quote": "VMs default to the standard Ubuntu desktop.",
   "note": "not offered: outside the product's scope — VMs and sandboxes are Linux (Ubuntu) microVMs only.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://getsolari.com/",
   "quote": "full Linux VMs, and fast code sandboxes",
   "note": "not offered: outside the product's scope — Solari's compute product is explicitly Linux VMs/sandboxes.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://getsolari.com/",
   "quote": "Cloud infrastructure for agents and automation: stealthy Chrome browsers, full Linux VMs, and fast code sandboxes. All of it runs on hardware-isolated microVMs, behind one API key.",
   "note": "not offered: outside the product's scope — Solari is a hosted multi-tenant SaaS (api.getsolari.com/console.getsolari.com) with no self-hosted deployment option documented.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://getsolari.com/",
   "quote": "Cloud infrastructure for agents and automation... All of it runs on hardware-isolated microVMs, behind one API key.",
   "note": "not offered: no bring-your-own-cloud / deploy-into-your-account option is documented; capacity runs on Solari's own fleet.",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://docs.getsolari.com/languages",
   "quote": "TypeScript npm install @solarisdk/sandbox ... Python pip install solari-sandbox",
   "note": "Only client SDKs are distributed as packages; no OSI license or public repo for the core sandbox/VM/browser engine is referenced anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "sso": {
   "value": false,
   "source": "https://docs.getsolari.com/organizations",
   "quote": "Multiple Google accounts can be members of the same organization and share everything.",
   "note": "not offered: only Google-account sign-in and email invite links are documented; no SAML/OIDC single sign-on is mentioned.",
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": false,
   "source": "https://docs.getsolari.com/regions",
   "quote": "Solari runs in a single region today.",
   "note": "The one region is US West (Oregon), api.getsolari.com, region value \"us-west\"; no EU region is listed.",
   "checked": "2026-10-14"
  },
  "max_session_h": {
   "value": 24,
   "source": "https://docs.getsolari.com/pricing",
   "quote": "Max session time 1 hour 5 hours 24 hours Unlimited",
   "note": "24h applies to the Professional plan, which is the plan bound to the card's primary on-demand mode. Enterprise is contractually unlimited; Free=1h, Starter=5h.",
   "checked": "2026-09-30"
  },
  "image_oci": {
   "value": false,
   "source": "https://docs.getsolari.com/templates",
   "quote": "const image = Image.base(\"ubuntu:22.04\").kind(\"sandbox\") // \"sandbox\" (headless) or \"desktop\" (with a screen) .aptInstall([\"ffmpeg\", \"poppler-utils\"]).pipInstall([\"pandas\", \"pdfplumber\"]).runCommands(\"mkdir -p /work\").env({ HF_HOME: \"/work/.hf\" }).workdir(\"/work\") // Build it and wait until it's ready to use. const tpl = await templates.build(image, { name: \"media-tools\" })",
   "note": "Custom templates are built server-side from a named base OS plus an apt/pip/run/env/workdir builder DSL (or Image.fromTemplate(\"workstation\")); there is no documented way to start a machine from an arbitrary pre-built Docker/OCI image or registry reference, and uploading local files into a build isn't supported yet ('Uploading files from your own computer (addLocalFile()/addLocalDir()) isn't supported yet; a recipe that uses it is turned away when you build.'). custom_image:true is correct (you can customize the image via templates) but image_oci:false is also correct since you can't bring your own container/OCI image.",
   "checked": "2026-09-30"
  },
  "docker_inside": {
   "value": true,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "\"dedicated\" (the default) is a microVM of your own.",
   "note": "derived: not explicitly documented. Sandboxes/VMs default to isolation:\"dedicated\", a full microVM with its own kernel; docs show root-level apt-get/aptInstall access (e.g. templates page's aptInstall builder step, desktops.execStream(\"apt-get\", ... [\"install\",\"-y\",\"jq\"])). An own-kernel VM with root access typically supports running Docker, but no page states Docker/containers explicitly work inside.",
   "checked": "2026-09-30"
  },
  "nested_virt": {
   "value": false,
   "source": "https://docs.getsolari.com/sandboxes",
   "quote": "\"dedicated\" (the default) is a microVM of your own.",
   "note": "derived: no page mentions /dev/kvm, nested virtualization, or running VMs/emulators inside a sandbox or VM. Solari's own machines are microVMs (Firecracker/cloud-hypervisor-style); such guests typically do not expose hardware virtualization extensions to the guest, and this is not documented as available.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://docs.getsolari.com/regions",
   "quote": "Solari runs in a single region today.",
   "note": "not offered: only one region (US West, Oregon)/architecture is documented; template base images are standard x86_64 cloud images (Image.base(\"ubuntu:22.04\")) with no CPU-architecture selection anywhere in templates, pricing, sandboxes, or VM docs, and no ARM option is mentioned.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://docs.getsolari.com/pricing",
   "quote": "Billed by size (vCPUs and memory). Multiple tiers and plans offered with monthly fees and per-resource rates; no documented per-sandbox usage query endpoint.",
   "note": "granularity: account-only; cost: no; Solari pricing is tiered (Free/Starter/Professional/Enterprise) with plan-level fees plus vCPU-hour and GB-hour charges. The SDK provides snapshot/fork/control APIs but no documented billing/usage query endpoint. Usage appears available only through invoices or account dashboards, not programmatically per sandbox/tag/project.",
   "confidence": "medium",
   "checked": "2026-10-01"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": "OR",
   "city": null,
   "provider_region": "us-west",
   "self_serve": true,
   "choosable": true
  }
 ],
 "locations_source": "https://docs.getsolari.com/regions",
 "locations_quote": "US West (Oregon) api.getsolari.com",
 "locations_checked": "2026-10-14"
}