An empirically-verified comparison. Every "they don't have" claim below was confirmed by direct API probes (their /api/v3/openapi.json) and hands-on UI testing — not marketing.
Methodology: we hit browser-use cloud's public OpenAPI (59 endpoints), ran 4 hands-on personas through their dashboard + playground, and probed their auth + error responses with curl. Findings are from 2026-06-09; we'll keep this page fresh as either platform ships changes.
| Capability | neout/agents | browser-use cloud | Verified via |
|---|---|---|---|
| Error envelope | code · error · request_id | raw FastAPI {detail: …} |
curl probe |
X-Request-Id on every response |
YES | NO | curl response headers |
Idempotency-Key header |
YES — 24h dedup, Idempotent-Replay: true |
0 mentions in 59-endpoint OpenAPI | openapi.json grep |
CORS preflight (OPTIONS) |
204 + X-API-Key allowed | 405 Method Not Allowed | curl OPTIONS |
| Auth header | X-API-Key OR Authorization: Bearer |
X-Browser-Use-API-Key only |
curl + spec |
| Public OpenAPI spec | YES — /openapi.yaml |
YES — /api/v3/openapi.json |
both fetched |
The following are present in our /openapi.yaml but completely absent from browser-use cloud's /api/v3/openapi.json:
| Endpoint | What it does |
|---|---|
POST /v1/webhooks | Register a webhook subscription (browser-use cloud manages webhooks via dashboard only — no API) |
POST /v1/webhooks/{id}/ping | Synchronously fire a test event to verify your handler |
GET /v1/webhooks/{id}/deliveries | Per-delivery audit log with status_code + duration_ms + retry count |
GET /v1/webhooks/signing-secret | HMAC-SHA256 secret for verifying delivery signatures |
POST /v1/keys / DELETE /v1/keys/{id} | Programmatic API-key mint + revoke (theirs are dashboard-only) |
GET /v1/agents/{id}/fingerprint | Wire-level UA + WebGL + canvas + tls preview — they don't expose any identity-quality signal |
GET /v1/agents/{id}/trust | Per-factor trust-score breakdown — they have no trust score at all |
GET /v1/credits + /v1/credits/ledger | Programmatic balance + per-job debit ledger |
POST /v1/quick/scrape | One-shot synchronous scrape (no session lifecycle) |
POST /v1/quick/extract | One-shot structured extraction (prompt or schema) |
POST /v1/quick/screenshot | One-shot PNG capture |
POST /v1/quick/batch | Fan-out N scrapes in one job |
GET /v1/health | Liveness with build SHA |
browser-use cloud calls their persistent identities "Browser Profiles." Hands-on testing confirms they're cookie-storage jars with zero quality signal:
| Signal | neout/agents Identity | browser-use Profile |
|---|---|---|
| Trust score (0–1000) | YES, with breakdown endpoint | None |
| Fingerprint preview | Full navigator + WebGL + canvas + TLS | None |
| Persona shaping at creation | OS, country, browser, UA, locale, persona name | Just "Profile Name" (string) |
| Proxy binding | Pinned to identity (sticky egress) | Decoupled — chosen per session |
| Last-used freshness | last_session_at + session_count | Only "cookie domains stored" text |
| Auth setup flow | Persistent + warmup recipes | "Launch a browser, log in yourself" |
| Surface | neout/agents | browser-use cloud |
|---|---|---|
| Live agent preview | Interactive noVNC (you can take over the session) | Read-only liveUrl iframe |
| CDP-snippet UX | One-click "Connect ▾" → Python/TS/curl ready-to-paste | Bare CDP URL — devs hand-write boilerplate every time |
| Cost transparency on jobs | llm_cost_usd + proxy_cost_usd + browser_cost_usd + total_cost_usd on every job | Same shape in API; not surfaced on free-tier dashboard |
| Anti-detect transparency | Public per-OS fingerprint spec | "Advanced stealth" — opaque |
codeMode / cacheScript — turns an agent run into a deterministic Playwright script. Genuine moat.pip install neout-agents from neout_agents import Client c = Client(api_key="agt_live_...") agent = c.create_agent(country="us", ttl="5m") print(c.fingerprint(agent["id"])) # Wire-level preview print(c.trust_breakdown(agent["id"])) # Why the score is what it is print(c.connect(agent["id"])) # Paste-ready Playwright snippetStart free — 100 credits