{
 "features_resolved": {
  "snapshot_any": false,
  "snapshot_mem": false,
  "fork": false,
  "pause_resume": false,
  "persistent_disk": false,
  "whole_disk": false,
  "persist_scope": true,
  "volumes": false,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": false,
  "image_snapshot": false,
  "image_oci": false,
  "vm_isolation": true,
  "docker_inside": false,
  "nested_virt": false,
  "root": false,
  "systemd": false,
  "browser": true,
  "desktop": false,
  "computer_use": true,
  "code_interpreter": false,
  "browser_control": true,
  "desktop_control": true,
  "browser_and_desktop": true,
  "anti_bot": true,
  "captcha_solving": true,
  "residential_ip": true,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": false,
  "raw_tcp_inbound": false,
  "egress_allowlist": false,
  "open_internet": true,
  "static_egress_ip": true,
  "private_network": null,
  "self_host": true,
  "byoc": true,
  "open_source": true,
  "soc2": false,
  "hipaa": true,
  "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": false,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "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": false,
  "guest_firewall": false,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": false,
  "volume_shared": false,
  "sidecar": null,
  "fuse": null,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "steel",
  "checked": "2026-09-30",
  "company": "Steel.dev",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://www.linkedin.com/company/steeldotdev",
   "quote": "Technology, Information and Internet ... Company size 11-50 employees ... Type Privately Held ... Founded 2024"
  },
  "stage": {
   "value": "unknown",
   "source": "",
   "quote": "",
   "confidence": "low",
   "note": "No accelerator found; https://www.ycombinator.com/companies/steel returns a 404 (not a YC company). Third-party aggregator StartupHub.ai lists a '$17M Series A led by Felicis Ventures, 22 Mar 2025' for 'Steel.dev', but that figure/date/lead exactly match TechCrunch's confirmed report of a $17M SEED round led by Felicis (Astasia Myers) for a DIFFERENT company, 'Browser Use' (browser-use.com), announced 2025-03-23 — i.e. the aggregator appears to have conflated two different 'browser automation for AI agents' startups. No primary source (company blog, press release, or reputable press specifically about Steel.dev/steel-dev) confirming any funding round, amount, investor, or date was found in the time available, so funding stage/amount/investors are left unknown rather than repeating the apparently-misattributed aggregator number."
  },
  "accelerators": [],
  "total_funding_usd": {
   "value": null,
   "status": "unknown"
  },
  "last_round": {
   "type": "unknown",
   "amount_usd": null,
   "date": null,
   "leads": [],
   "status": "unknown",
   "source": "",
   "quote": ""
  },
  "investors": [],
  "portfolio_listings": [],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": "11-50",
   "source": "https://www.linkedin.com/company/steeldotdev"
  },
  "note": "Independent, venture-backed-looking startup (not a YC company despite superficial similarity of concept to other YC 'browser for agents' startups; the YC companies page for the 'steel' slug 404s). Co-founded by Hussien Hussien (CEO) and Nasr Mohamed (CTO), per Fly.io customer story (2024-09-25) and GitHub (github.com/hussufo, github.com/fukouda); LinkedIn shows the company founded 2024 with 11-50 employees. Public beta product launched via 'Show HN' in Nov 2024. Funding: could not confirm any round from a primary source within the research window; the only funding figure found ($17M Series A led by Felicis, 22 Mar 2025, via StartupHub.ai) is very likely a data-conflation with the unrelated startup 'Browser Use', which raised a confirmed $17M SEED round led by the same Felicis partner on the same date (per TechCrunch) — a buyer should treat that $17M figure as NOT reliably attributable to Steel.dev. No shutdown/pivot/acquisition signals found; product is actively shipping (frequent blog posts/launches through Sept 2026)."
 },
 "id": "steel",
 "name": "Steel.dev",
 "url": "https://docs.steel.dev/overview/pricinglimits",
 "category": "browser",
 "isolation": "dedicated-vm",
 "modes": [
  {
   "key": "launch",
   "label": "Browser session, Launch rate ($0.10/browser-hour)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "sizes": [
    {
     "name": "browser-session",
     "vcpu": null,
     "ram_gib": null,
     "disk_gib": null,
     "hour": 0.1,
     "month_cap": null
    }
   ],
   "requires_plan": "Launch",
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Browser hours billed by the minute, rounded up (so each session bills >= 1 min). Rate applies only on the Launch plan ($0 fee). Launch caps: 10 concurrent sessions, 15-min max session, 60 req/min. Browser vCPU/RAM not published (size vcpu/ram null). Billing runs from create until release()/timeout; default timeout 5 min; without inactivityTimeout a stalled client stays billed until the timeout. Basis (checked 2026-09-28): wall-clock browser time, no CPU/RAM metering, so alloc: 'Browser hours are billed by the minute, rounded up' (https://docs.steel.dev/overview/pricinglimits). Idle: opt-in inactivityTimeout, e.g. 'Release the session after 1 minute with no CDP or input activity' (off by default), else the 5-min default timeout (https://docs.steel.dev/overview/sessions-api/session-lifecycle). Minimum session timeout is 15 s; the timeout cannot be extended on a live session, so jobs must request their full timeout at create time."
  },
  {
   "key": "scale",
   "label": "Browser session, Scale rate ($0.08/browser-hour)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "sizes": [
    {
     "name": "browser-session",
     "vcpu": null,
     "ram_gib": null,
     "disk_gib": null,
     "hour": 0.08,
     "month_cap": null
    }
   ],
   "requires_plan": "Scale",
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": "Rate only available with the Scale plan ($250/month + usage, $100 monthly usage credit).",
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Billed per minute, rounded up. Scale caps: 100 concurrent, 1-hour max session (long jobs must re-create sessions and re-inject state via Profiles/sessionContext), 600 req/min. Proxy $6/GB, CAPTCHA $1/1k, Browser Tools $5/1k, dedicated IP $5/IP/month. Basis: wall-clock browser-minutes (alloc); idle release via opt-in inactivityTimeout, same as Launch."
  },
  {
   "key": "enterprise",
   "label": "Enterprise (custom rates, reserved browser pools, stealth browser)",
   "flags": [
    "sales"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us"
   ],
   "gpu_only": false,
   "features": {},
   "pricing": "sizes",
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "sizes": [
    {
     "name": "browser-session",
     "vcpu": null,
     "ram_gib": null,
     "disk_gib": null,
     "hour": null,
     "month_cap": null
    }
   ],
   "requires_plan": "Enterprise",
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": "Custom contract; rates, credits and limits unpublished.",
   "min_billed_seconds": 60,
   "granularity_s": 60,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "1,000+ concurrent, sessions up to 24 h, Stealth Browser and reserved browser pools included. Browser-hour, proxy and CAPTCHA rates all 'Custom'. Basis: browser-hours (alloc), rates custom."
  }
 ],
 "storage": {
  "included_disk_gib": null,
  "disk_gib_month": null,
  "disk_billed_when_stopped": false,
  "snapshot_gib_month": null,
  "paused_ram_billed": false,
  "note": "Profiles (persisted cookies/auth/extensions) are free but capped at 300 MB per profile and auto-deleted after 30 days unused. No per-GB storage price published."
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": 0,
  "ipv4_month": null,
  "ipv4_available": false,
  "residential_proxy_gib": 10,
  "internet": {
   "default": "full"
  }
 },
 "plans": [
  {
   "name": "Launch",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 10,
   "max_session_h": 0.25,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "$30 one-time usage credit valid 90 days (see free.one_time_credit). Up to 3 seats. 60 req/min, 7-day data retention. Steel proxies and CAPTCHA solving require a $10 paid-balance deposit (counts toward usage, free credits don't count). Auto top-up available. Pairs with mode 'launch'."
  },
  {
   "name": "Scale",
   "fee": 250,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 100,
   "per_seat": 0,
   "concurrency": 100,
   "max_session_h": 1,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "$250/month + usage; includes $100 usage credit per month applied to browser hours, proxy GB, CAPTCHA and Browser Tools. Unlimited seats, 600 req/min, 14-day retention, dedicated Slack, Enterprise SSO, HIPAA-ready BAA, dedicated IPs $5/IP/month (up to 25 self-serve). Pairs with mode 'scale'."
  },
  {
   "name": "Enterprise",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": null,
   "included_usd": null,
   "per_seat": 0,
   "concurrency": null,
   "max_session_h": 24,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Custom + usage. 1,000+ concurrent sessions (concurrency null = custom). Stealth Browser, reserved browser pools, SLAs, 911 email."
  },
  {
   "name": "Legacy Starter / Developer / Startup",
   "fee": null,
   "flags": [
    "legacy"
   ],
   "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": "Pre-2026-06-26 plans kept by existing customers only ('no forced migration'). Official pages no longer publish their prices. THIRD-PARTY ONLY: Starter $29/mo, Developer $99/mo, Startup $499/mo (costbench.com, verified 2026-06-14); included hours 290 / 1,238 / 9,980 per a search-engine summary, unverified. Not purchasable by new users."
  }
 ],
 "free": {
  "monthly_credit": 0,
  "one_time_credit": 30
 },
 "features": {
  "linux": null,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "gpu_types": [],
  "snapshot": "none",
  "pause_resume": false,
  "fork": false,
  "persistent_disk": true,
  "volumes": false,
  "auto_stop_idle": true,
  "max_session_h": 24,
  "custom_image": false,
  "docker_inside": false,
  "nested_virt": false,
  "root": false,
  "systemd": false,
  "browser": true,
  "desktop": false,
  "computer_use": true,
  "code_interpreter": false,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": false,
  "raw_tcp_inbound": false,
  "egress_allowlist": false,
  "static_egress_ip": true,
  "private_network": null,
  "self_host": true,
  "byoc": true,
  "open_source": true,
  "regions": [
   "us"
  ],
  "soc2": false,
  "hipaa": true,
  "sso": true,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": true,
  "browser_control": true,
  "desktop_control": true,
  "anti_bot": true,
  "captcha_solving": true,
  "egress_ip_type": "datacenter+residential",
  "ip_note": "Datacenter IPs by default; managed residential proxies $10/GB (Launch) / $6/GB (Scale) on paid plans; BYO datacenter/residential/mobile proxy on all plans at no extra cost; CAPTCHA solving on paid plans; dedicated \"Stealth Browser\" is Enterprise-only.",
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": false,
  "ingress_rules": false,
  "guest_firewall": false,
  "secret_proxy": false,
  "isolation": "dedicated-vm",
  "image_oci": false,
  "volume_attach": false,
  "volume_shared": false,
  "own_agent_api": false,
  "open_internet": true,
  "usage_api": false,
  "persist_scope": "profile"
 },
 "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": [
  {
   "id": "idle_tail",
   "label": "Billed session time vs useful work (idle until release/timeout)",
   "kind": "slider",
   "min": 1,
   "max": 2,
   "step": 0.05,
   "default": 1,
   "unit": "x",
   "options": null,
   "effect": "hours_factor",
   "modes": null,
   "why": "Sessions bill per minute from create until release() or timeout (default 5 min). Without inactivityTimeout a stalled client keeps the browser billed until the hard timeout."
  },
  {
   "id": "proxy_launch",
   "label": "Workload egress routed through Steel proxies (Launch)",
   "kind": "select",
   "min": null,
   "max": null,
   "step": null,
   "default": 0,
   "unit": null,
   "options": [
    {
     "value": 0,
     "label": "No Steel proxy / bring-your-own proxy (free)"
    },
    {
     "value": 10,
     "label": "Steel proxy on Launch ($10/GB)"
    }
   ],
   "effect": "egress_gib_rate",
   "modes": [
    "launch"
   ],
   "why": "Only Steel-managed proxy bandwidth is billed (bidirectional, incl. TLS handshakes and headers); default datacenter IP and BYO proxies are free. Launch needs a $10 paid deposit to use proxies. Source: docs.steel.dev/overview/pricinglimits (verified 2026-09-28)."
  },
  {
   "id": "proxy_scale",
   "label": "Workload egress routed through Steel proxies (Scale)",
   "kind": "select",
   "min": null,
   "max": null,
   "step": null,
   "default": 0,
   "unit": null,
   "options": [
    {
     "value": 0,
     "label": "No Steel proxy / bring-your-own proxy (free)"
    },
    {
     "value": 6,
     "label": "Steel proxy on Scale ($6/GB)"
    }
   ],
   "effect": "egress_gib_rate",
   "modes": [
    "scale"
   ],
   "why": "Scale proxy bandwidth is $6/GB; the $100 monthly Scale credit also covers proxy GB. Source: docs.steel.dev/overview/pricinglimits (verified 2026-09-28)."
  }
 ],
 "caveats": [
  "Browser-hour priced product: no published vCPU/RAM per session (sizes vcpu/ram null); the engine cannot size-match, treat 1 session = 1 browser instance.",
  "Plan and rate are coupled: $0.10/h only on Launch, $0.08/h only on Scale. Each mode carries 'requires_plan' so the engine never combines the Scale rate with the Launch plan.",
  "Proxy bandwidth is modelled by knobs proxy_launch ($10/GB) / proxy_scale ($6/GB) with effect 'egress_gib_rate', each restricted to its plan's mode; default 0 = no Steel proxy. network.egress_gib = 0 because non-proxy traffic is not metered per docs.",
  "Launch max session 15 min and Scale 1 h: long agent runs must be split into many sessions (state carried via Profiles API / sessionContext). Enterprise needed for sessions up to 24 h.",
  "CAPTCHA solves $3/1k (Launch, needs $10 deposit) / $1/1k (Scale); Browser Tools /scrape /screenshot /pdf $5/1k; not modelled in the card.",
  "Dedicated static egress IPs: $5/IP/month on Scale (up to 25 self-serve); their traffic is still metered as proxy bandwidth. Not a public inbound IPv4, so network.ipv4_* left null/false.",
  "Browsers run in one region (us-east); proxy geolocation changes the visible IP location only.",
  "Each hosted session runs in its own VM per the docs ('A Steel session is a headful Chromium in a VM'; Files API: 'that session's isolated VM environment'); the hypervisor is not named and host OS is undocumented (features.linux null). Self-hosted steel-browser is a plain Docker container.",
  "Legacy Starter/Developer/Startup plan prices are third-party only (costbench.com); official pages do not publish them.",
  "Self-hosting the open-source steel-browser Docker image is free (you pay your own compute); Steel Outpost (Contact Sales) runs Steel in your own cloud or network with your own keys and region, which is the only path to non-US data location. Neither is modelled as a mode (no published price).",
  "No SOC 2 statement found; HIPAA-ready BAA on Scale/Enterprise. No latency benchmark available (vendor claims <1 s average session start).",
  "ENGINE LIMITATION (verifier 2026-09-28): sizes have vcpu/ram_gib null (unpublished), and engine.js hourly() filters sizes with s.vcpu >= W.vcpu, which is false for null, so this card is currently never priced ('no preset'). Needs an engine rule for unsized browser-session presets; numbers were not invented to work around it.",
  "Browser Tools (/scrape, /screenshot, /pdf) have their own 20 requests/minute limit (HTTP 429), separate from the plan req/min limit; each call opens a fresh browser that counts against plan concurrency.",
  "Files persist across sessions even though no machine disk does: session uploads/downloads are backed up at release and promoted to org-wide Global Files, which can be mounted into any later session (https://docs.steel.dev/overview/files-api/overview). No storage price or quota published for Global Files."
 ],
 "sources": [
  "https://docs.steel.dev/overview/pricinglimits",
  "https://steel.dev/pricing",
  "https://steel.dev/blog/pricing-update",
  "https://docs.steel.dev/overview/sessions-api/session-lifecycle",
  "https://docs.steel.dev/overview/sessions-api/configuration",
  "https://docs.steel.dev/overview/sessions-api/dedicated-ips",
  "https://docs.steel.dev/overview/stealth/proxies",
  "https://costbench.com/software/browser-automation/steel-dev/",
  "https://docs.steel.dev/overview/files-api/overview",
  "https://steel.dev/",
  "https://docs.steel.dev/cookbook/claude-computer-use"
 ],
 "fleet": {
  "default_max_instances": 10,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": "Launch must add $10 paid balance to enable CAPTCHA solving or Steel proxies; free credits do not qualify. Deposit funds usage, not a fee.",
  "tiers": "Launch 10; Scale ($250/month) 100; Enterprise 1,000+ via sales.",
  "notes": "Current plans replace legacy Starter/Developer/Startup for new accounts. 10 fits Launch, 50 Scale, 300/1,000 Enterprise. Anti-bot/proxy verification is distinct from concurrency.",
  "sources": [
   "https://docs.steel.dev/overview/pricinglimits",
   "https://steel.dev/pricing"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 1,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 2
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://docs.steel.dev/overview/profiles-api/overview",
   "quote": "Profiles work by storing a snapshot of the browser's User Data Directory. This includes all the data that is stored in the browser, such as cookies, extensions, credentials, and browser settings. 1. Session gets created with a `persistProfile` flag ... 3. After the session is released, the userDataDir is persisted and the additional information on the profile is updated and the profile is set to the `READY` state 4. Whenever a session is created with the `profileId`, the profile is loaded from the storage and the session is started with the same userDataDir and context",
   "note": "Browser-profile analog, not a machine snapshot: opt-in per session (persistProfile: true at create); on release/timeout Steel saves the Chrome userDataDir automatically, and a later session started with profileId restores it. Disk/browser state only (cookies, storage, extensions, settings); no memory/open tabs/processes. 300 MB profile limit; profiles unused for 30 days are deleted.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://docs.steel.dev/overview/sessions-api/reusing-auth-context",
   "quote": "Extract browser state data through the `GET /v1/sessions/{id}/context` endpoint. This endpoint returns a context object containing browser state information such as cookies and local storage.",
   "note": "Browser-state snapshot of a live session at any time (cookies, localStorage, sessionStorage, IndexedDB per cookbook), returned as JSON; new sessions can boot from it via sessionContext (fork-like). No memory/process state. Profiles can also be created/replaced manually from an uploaded userDataDir zip via the Profiles API.",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "Steel sells browser sessions driven over CDP/Playwright/Puppeteer/Selenium plus a computer-use actions API; the agent runs outside. Steel CLI/Skills give Claude Code/Codex/OpenCode a Steel browser, but no API runs a coding-agent harness inside a Steel session.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/embed-sessions/live-sessions",
   "quote": "For security reasons, debug URLs are **unauthenticated**. Anyone with the debug URL can view or interact with that session. Use your own-access controls if embedding in a user-facing product.",
   "note": "Sessions expose no user ports. The CDP websocket requires the API key; the live-view/debug URL is an unauthenticated capability URL. The only control is debugConfig.interactive=false (read-only viewer). No IP allowlists or private/public toggles.",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "You get a Chrome session over CDP, not a shell or root, so nftables/iptables cannot be run. The Files API calls the session host 'that session's isolated VM environment', but no exec access is documented. Self-hosted steel-browser (Docker) is your own container.",
   "checked": "2026-09-29",
   "derived": true
  },
  "secret_proxy": {
   "value": false,
   "source": "https://docs.steel.dev/overview/credentials-api/overview",
   "quote": "The clear-text credentials are placed directly into the in-memory session and sent to the target service over our private WireGuard backbone ensuring end-to-end encryption and safe keeping of your credentials.",
   "note": "Not a proxy. Credentials API (beta, free) stores username/password/TOTP per origin+namespace (KMS envelope encryption) and a Steel script injected into each page fills the login form (autoSubmit, blurFields, exactOrigin). The plaintext does enter the browser session/DOM; Steel only hides it from the agent ('Isolation mechanisms to prevent agents from extracting secrets post-injection'; fields blurred against vision agents). Covers web login forms only (username/password/OTP fields), not API headers, databases, SSH or git. proxyUrl with user:pass is a normal session parameter.",
   "checked": "2026-09-29"
  },
  "isolation": {
   "value": "dedicated-vm",
   "source": "https://docs.steel.dev/cookbook/claude-computer-use",
   "quote": "A Steel session is a headful Chromium in a VM reachable over HTTPS",
   "note": "Multiple cookbook pages (Python/Go/Rust/TS Claude computer-use recipes) independently describe each session as a headful Chromium running 'in a VM'. Exact hypervisor (firecracker/qemu/etc.) is not named, and self-hosted steel-browser runs as a plain Docker container, so this is medium confidence for the managed cloud product specifically.",
   "checked": "2026-10-14",
   "files_quote": "Files uploaded to active sessions become available within that session's isolated VM environment.",
   "files_source": "https://docs.steel.dev/overview/files-api/overview"
  },
  "image_oci": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "not offered: outside the product's scope — Steel sessions launch a fixed managed Chromium browser; there is no API to boot a session from a customer-supplied Docker/OCI image. (Self-hosting the open-source steel-browser image is a separate, unrelated deployment path.)",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "not offered: outside the product's scope — there is no stopped/sleeping machine that auto-wakes on an incoming request; every session is explicitly created via a create-session API call and billed from creation until release/timeout.",
   "checked": "2026-09-30"
  },
  "volume_attach": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "not offered: outside the product's scope — sessions expose a scoped per-session filesystem (Files API) and Profiles for persisted browser state, but there is no API to attach extra general-purpose persistent volumes to a session.",
   "checked": "2026-09-30"
  },
  "volume_shared": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "not offered: outside the product's scope — no concept of a volume mounted by multiple concurrently-running sessions; each session's filesystem is private to that session.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "Browser hours are billed by the minute, rounded up.",
   "note": "not offered: outside the product's scope — Steel sells fixed browser sessions billed per browser-hour; vCPU/RAM per session are not even published, and there is no API to change a running session's CPU/RAM.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://docs.steel.dev/cookbook/claude-computer-use",
   "quote": "Steel supplies the screen. A Steel session is a headful Chromium in a VM reachable over HTTPS, and the Input API (`sessions.computer`) executes mouse and keyboard actions and returns a PNG in the same call.",
   "note": "not offered: outside the product's scope — sessions.computer is a low-level screenshot+click/type primitive that a caller's own agent (e.g. Claude/OpenAI computer-use loop) drives; Steel does not run its own autonomous browser/research task agent that you invoke with a goal.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": true,
   "source": "https://github.com/steel-dev/steel-mcp-server",
   "quote": "Steel MCP Server ... Give Claude, Cursor, or any MCP client a real Chrome in the cloud. Read pages that block a plain fetch, fill forms, take screenshots, and hand the browser to a person when a login or a CAPTCHA needs one. The browser is run by Steel.",
   "note": "First-party official MCP server (steel-dev/steel-mcp-server, MIT) that exposes tools to create/control/release Steel cloud browser sessions.",
   "checked": "2026-09-30"
  },
  "lang_python": {
   "value": true,
   "source": "https://github.com/steel-dev/steel-python",
   "quote": "steel-python",
   "note": "Official first-party Python SDK (steel-dev/steel-python) for creating and controlling Steel sessions; used throughout docs.steel.dev cookbook Python recipes.",
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": true,
   "source": "https://github.com/steel-dev/steel-node",
   "quote": "steel-node",
   "note": "Official first-party Node.js/TypeScript SDK (steel-dev/steel-node) for creating and controlling Steel sessions; used throughout docs.steel.dev cookbook TypeScript recipes.",
   "checked": "2026-09-30"
  },
  "egress_allowlist": {
   "value": false,
   "source": "https://docs.steel.dev/overview/stealth/proxies",
   "quote": "To maintain a high-quality and compliant network, Steel and its partners may restrict access to certain websites. We do this to ensure the long-term health and reputation of our IP pool. Blocklists are typically maintained for: Gambling and betting websites, Government and restricted institutional sites, Ticketing websites, Other categories flagged for compliance reasons",
   "note": "not offered: outside the product's scope — the only documented outbound restriction is Steel's own compliance blocklist protecting its shared IP pool; there is no customer-configurable allow/deny list, no-internet mode, or security-group-style egress rule for a session.",
   "checked": "2026-09-30"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://docs.steel.dev/overview/stealth/proxies",
   "quote": "To maintain a high-quality and compliant network, Steel and its partners may restrict access to certain websites.",
   "note": "not offered: outside the product's scope — no documented method/path-level egress control; Steel's own compliance blocklist operates at the domain level and is not customer-configurable.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": true,
   "corrected_from": false,
   "source": "https://steel.dev/",
   "quote": "Self-Hosting Run Steel in your own cloud or host it yourself, keeping your data inside your network. Steel Outpost Self-host Data stays in your network Bring your own keys Your own region Contact Sales",
   "note": "Steel Outpost (sales-only, Enterprise) runs Steel in the customer's own cloud/network with their own keys and region. Terms, pricing and how much of it Steel manages are unpublished. Separate from the free open-source steel-browser Docker image.",
   "checked": "2026-10-14"
  },
  "persistent_disk": {
   "value": true,
   "corrected_from": false,
   "source": "https://docs.steel.dev/overview/profiles-api/overview",
   "quote": "persistProfile: true tells Steel to snapshot the browser data directory when the session ends. ... On a fresh run, Session #1 launches with persistProfile: true and no profileId. ... Session #1 releases; Steel writes the profile snapshot.",
   "note": "Contradiction confirmed real: the browser's userDataDir (cookies, local storage, extensions, auth) survives a session release/stop and is reloaded into a later session via profileId. Off by default: you must opt in with persistProfile: true; without it the data dir is discarded when the session ends. Disk-only persistence (no running processes/memory).",
   "checked": "2026-09-30"
  },
  "snapshot": {
   "value": "none",
   "source": "https://docs.steel.dev/overview/sessions-api/reusing-auth-context",
   "quote": "Extract browser state data through the GET /v1/sessions/{id}/context endpoint. This endpoint returns a context object containing browser state information such as cookies and local storage.",
   "note": "reviewed: proposed correction rejected (Steel has both an automatic disk snapshot (Profiles: userDataDir saved at release when persistProfile is set) and an on-demand one (session context endpoint / manual Profile upload of a userDataDir zip). Neither captures memory or running processes, so the correct enum is 'fs', not 'none'.)",
   "checked": "2026-09-30"
  },
  "pause_resume": {
   "value": false,
   "source": "https://docs.steel.dev/llms-full.txt",
   "quote": "Always release sessions when done: client.sessions.release(sessionId) ... Skipping it keeps browsers running until the 5-minute default timeout.",
   "note": "There is no pause/unpause of a live session; a session either runs (billed) or is released/timed out (terminated, not paused). State carries to a new session only via the Profiles/session-context snapshot mechanism, which is a separate feature (see snapshot/persistent_disk) — it re-hydrates a NEW browser instance rather than resuming the same one, and billing is not merely reduced, it stops and a fresh session is created and billed from zero.",
   "checked": "2026-09-30"
  },
  "fork": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "No API clones a machine/session into new ones; every session.create() starts a fresh incognito-style browser. Restoring a Profile or sessionContext seeds cookies/storage into that fresh browser but does not duplicate a live instance.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "No documented way to clone a currently-running session without stopping it; sessions are created new and optionally seeded from a saved profile/context, never branched live.",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://docs.steel.dev/overview/profiles-api/overview",
   "quote": "Profiles work by storing a snapshot of the browser's User Data Directory. This includes all the data that is stored in the browser, such as cookies, extensions, credentials, and browser settings.",
   "note": "Snapshots/restores are disk-only (userDataDir contents); no memory, open tabs, or running-process state is captured or forked, so memory-snapshot forking is not offered.",
   "checked": "2026-09-30"
  },
  "docker_inside": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "You get a Chrome session reachable over CDP/API only, not a shell; there is no way to run Docker containers inside a session. (Steel's own Docker guide at /overview/self-hosting/docker is about self-hosting the Steel Browser server itself, not about running Docker inside a hosted session.)",
   "checked": "2026-09-30"
  },
  "nested_virt": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "No shell/exec surface is exposed at all (CDP + REST API only), so there is no /dev/kvm or nested-VM capability inside a session.",
   "checked": "2026-09-30"
  },
  "root": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "No shell access of any kind is documented (no root, no sudo); the only surfaces are the CDP websocket and the REST/SDK API.",
   "checked": "2026-09-30"
  },
  "ssh": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "No SSH access is documented or mentioned anywhere in the docs; access is via CDP/Playwright/Puppeteer/Selenium/REST only.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/embed-sessions/live-sessions",
   "quote": "the tool returns liveViewUrl (session.sessionViewerUrl), and the Next.js recipe embeds Steel's Live View iframe alongside the chat so users watch the browser as the agent works.",
   "note": "Steel offers a browser-only Live View (a viewer/embeddable iframe of the browser tab, with optional interactive control), not a general graphical desktop (no VNC/RDP of a full OS, no window manager, no other apps) — matches the product being a managed-Chrome API, not a VM desktop.",
   "checked": "2026-09-30"
  },
  "custom_image": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "Sessions always boot Steel's managed Chrome; there is no way to launch a session from your own Docker/OCI image. (Self-hosting the open-source steel-browser image replaces the whole service on your own infra — a different thing from starting a hosted session from a custom image.)",
   "checked": "2026-09-30"
  },
  "volumes": {
   "value": false,
   "source": "https://docs.steel.dev/overview/profiles-api/overview",
   "quote": "Profiles work by storing a snapshot of the browser's User Data Directory.",
   "note": "The only persistence primitive is the Profiles snapshot/restore mechanism (capped at 300 MB, auto-deleted after 30 days unused); there is no attachable/mountable persistent volume for a running session. (The 'volumes:' block in the self-hosting docker-compose file mounts the self-hosted server's own .cache dir on your infra — not a user-facing session volume feature.)",
   "checked": "2026-09-30"
  },
  "inbound_https": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/embed-sessions/live-sessions",
   "quote": "For security reasons, debug URLs are unauthenticated. Anyone with the debug URL can view or interact with that session.",
   "note": "Steel exposes only a CDP websocket and a capability-URL live viewer for the browser it runs; there is no concept of exposing an inbound HTTPS port on the session's own host, since the session isn't a general machine with your own listening services — plainly outside what a managed-browser API offers.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/dedicated-ips",
   "quote": "dedicated static egress IPs: $5/IP/month on Scale (up to 25 self-serve); their traffic is still metered as proxy bandwidth.",
   "note": "Steel sells dedicated OUTBOUND (egress) IPs for the browser's own traffic; there is no public inbound IPv4 assigned to a session, and none is offered — consistent with the product being a browser-automation API, not general VM hosting.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://docs.steel.dev/integrations/claude-code",
   "quote": "The Claude Code integration gives Claude Code a real cloud browser through the Steel CLI. From a Claude Code session, you can start and control Steel sessions, scrape rendered pages, run computer-use actions...",
   "note": "This is the inverse of the field: Steel gives external coding-agent harnesses (Claude Code, Codex, OpenCode) a browser tool via its CLI/skills; it does not preinstall or offer those harnesses running inside its own sandbox.",
   "checked": "2026-10-14"
  },
  "gpu": {
   "value": false,
   "source": "https://docs.steel.dev/overview/sessions-api/overview",
   "quote": "A session is an isolated cloud browser instance your agent spins up on demand, like opening a fresh incognito window but running in Steel's cloud and controlled through code.",
   "note": "No GPU, GPU type, or GPU-accelerated rendering is mentioned anywhere in pricing/limits or docs; sessions are billed purely per browser-hour with no compute-size dimension. Plainly outside what a managed-browser API offers.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "Browser hours are billed by the minute, rounded up",
   "note": "Steel runs a managed Chrome browser in its own cloud (card's own os:['linux']); there is no Windows guest OS offered as the sandboxed environment. Only mention of 'Windows' in the docs is inside an example User-Agent string for a Profile, not an actual Windows machine.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "Browser hours are billed by the minute, rounded up",
   "note": "No macOS guest/runtime is offered or mentioned anywhere in the docs; the product runs managed Chrome on Steel's own cloud infra (os: linux per the card).",
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": false,
   "source": "https://docs.steel.dev/llms-full.txt",
   "quote": "Steel runs browsers in one region, us-east. The region parameter is still accepted, and any other value is rejected. Proxy geolocation, not region, selects the public IP location that the site receives.",
   "note": "All browser sessions run in a single US region regardless of the region parameter; only the outbound proxy's exit IP can be geolocated elsewhere. No EU data residency option exists.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "Browser hours are billed by the minute, rounded up.",
   "note": "not offered: outside the product's scope — Steel sessions are a fixed managed Chromium instance in Steel's own cloud; the hosted product exposes no machine/architecture selection at all (no vCPU/RAM/arch choice), only a per-browser-hour rate. The only documented ARM support (README: 'Running on ARM architecture ... official images for ARM', and 'DOCKER_DEFAULT_PLATFORM=linux/arm64 docker compose up' for Mac Silicon) is for self-hosting the open-source steel-browser Docker image on your own infra, a separate deployment path, not an ARM option in the managed cloud product.",
   "checked": "2026-09-30"
  },
  "soc2": {
   "value": false,
   "source": "https://docs.steel.dev/llms-full.txt",
   "quote": "| Security | Enterprise SSO | - | Included | Included |\n| Security | HIPAA-ready BAA | - | Included | Included |",
   "note": "The official pricing page's Security row only lists Enterprise SSO and a HIPAA-ready BAA (even for Enterprise); no SOC 2 attestation is listed for any plan. Steel does run a Vanta-hosted Trust Center (trust.steel.dev) but it requires a granted-access request to view any compliance report/badge, and no public page states a completed SOC 2 Type I/II. Treated as not (yet) attested rather than null since the compliance table is otherwise complete and omits it.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://docs.steel.dev/overview/pricinglimits",
   "quote": "Usage credits are applied to metered Steel usage, including browser hours, proxy bandwidth, CAPTCHA solves, and Browser Tools usage. ... Browser hours are billed by the minute, rounded up.",
   "note": "granularity: account-only; cost: no; Steel's API provides no endpoint to retrieve billable usage per session or by tag/label. The /v1/sessions API creates and manages sessions but does not report usage metrics. Billing is visible only through the account dashboard; users can view credits and usage only in the Steel web dashboard, not programmatically.",
   "confidence": "high",
   "checked": "2026-10-01"
  },
  "persist_scope": {
   "value": "profile",
   "source": "https://docs.steel.dev/overview/profiles-api/overview",
   "quote": "persistProfile: true tells Steel to snapshot the browser data directory when the session ends. ... On a fresh run, Session #1 launches with persistProfile: true and no profileId. ... Session #1 releases; Steel writes the profile snapshot.",
   "note": "What carries over to a new session is the saved browser profile (cookies, local storage, logins) plus files: session files (uploads and downloads) are backed up when the session ends and promoted to org-wide Global Files storage, which can be mounted into later sessions. Not a persistent machine disk: the session's own filesystem, installed state and processes do not survive, so scope stays 'profile'.",
   "checked": "2026-10-14",
   "files_source": "https://docs.steel.dev/overview/files-api/overview",
   "files_quote": "Session files persist beyond session lifecycle - files are automatically backed up when sessions end. ... All session files are automatically promoted to global storage when sessions are released, creating a comprehensive file workspace."
  }
 },
 "locations": [
  {
   "country": "US",
   "state": null,
   "city": null,
   "provider_region": "us-east",
   "self_serve": true,
   "choosable": false
  }
 ],
 "locations_source": "https://docs.steel.dev/overview/pricinglimits",
 "locations_quote": "Steel runs browsers in one region, us-east. The region parameter is still accepted, and any other value is rejected.",
 "locations_checked": "2026-10-01"
}