{ "schema_version": "2026-06-04", "language": "python", "name": "seleniumbase-website-scraper", "description": "SeleniumBase-style browser agent that turns observed website traffic into OpenAPI specs, coverage reports, samples, and a replay client.", "version": "0.2.9", "entrypoint": { "module": "agent", "class_name": "BrowserToApiAgent", "function": null, "command": [] }, "skills": [ { "name": "discover_api_from_browser", "description": "Open a website in a browser, capture observable HTTP traffic, infer an OpenAPI 3.1 spec, and write a browsable API discovery report.", "handler": "discover_api_from_browser", "tags": [ "browser", "seleniumbase", "openapi", "api-discovery" ], "scopes": [], "stream": false, "policy": { "timeout_seconds": 600.0, "idempotent": false, "max_retries": 0, "cost_class": null, "allow_scope_expansion": false, "grant_mode": null, "grant_allow_patterns": [], "grant_deny_patterns": [], "grant_outputs_prefix": null, "grant_write_prefixes": [], "grant_ttl_seconds": null, "grant_run_timeout_seconds": null, "grant_approval_timeout_seconds": null, "grant_scope_approval_timeout_seconds": null }, "input_schema": { "type": "object", "properties": { "url": { "type": "string" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "origins": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "include": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "exclude": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "wait_seconds": { "type": "integer" }, "max_clicks": { "type": "integer" }, "search_term": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "min_samples": { "type": "integer" }, "redact": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "browser_mode": { "type": "string" }, "captcha_policy": { "type": "string" }, "allowed_captcha_domains": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "ai_explore": { "type": "boolean" }, "ai_steps": { "type": "integer" }, "ai_goal": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "url" ], "additionalProperties": false }, "output_schema": { "additionalProperties": true, "type": "object" } }, { "name": "discover_api_from_trace", "description": "Replay request/response JSONL traffic into the same OpenAPI 3.1 discovery pipeline used by live browser capture.", "handler": "discover_api_from_trace", "tags": [ "trace", "openapi", "api-discovery" ], "scopes": [], "stream": false, "policy": { "timeout_seconds": 240.0, "idempotent": false, "max_retries": 0, "cost_class": null, "allow_scope_expansion": false, "grant_mode": null, "grant_allow_patterns": [], "grant_deny_patterns": [], "grant_outputs_prefix": null, "grant_write_prefixes": [], "grant_ttl_seconds": null, "grant_run_timeout_seconds": null, "grant_approval_timeout_seconds": null, "grant_scope_approval_timeout_seconds": null }, "input_schema": { "type": "object", "properties": { "requests_jsonl": { "type": "string" }, "responses_jsonl": { "type": "string" }, "title": { "type": "string" }, "origins": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "include": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "exclude": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "min_samples": { "type": "integer" }, "redact": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] } }, "required": [ "requests_jsonl" ], "additionalProperties": false }, "output_schema": { "additionalProperties": true, "type": "object" } } ], "capabilities": { "browser_to_api": { "capture": "Launches a browser, records XHR/fetch/document traffic with response bodies, then infers OpenAPI.", "offline": "Can replay JSONL request/response captures into the same OpenAPI emitter.", "outputs": [ "openapi.json", "openapi.yaml", "report.md", "index.html", "client.mjs", "confidence.json", "samples/*.json" ], "noise_filtering": "Drops analytics, static assets, service workers, and obvious bot-defense plumbing by default.", "schema_inference": "Infers request/response JSON schemas, query params, path params, GraphQL dispatches, and auth-shaped headers.", "captcha_policy": "SeleniumBase solve_captcha is available only for a2acloud.io and subdomains.", "llm_exploration": "Uses ctx.llm to choose bounded, non-destructive page actions after the page loads." } }, "input_modes": [ "application/json" ], "output_modes": [ "application/json" ], "required_secrets": [], "required_env": [], "consumer_setup": { "fields": [] }, "runtime": { "lifecycle": "ephemeral", "availability": "on_demand", "state": "none", "sandbox": "microsandbox", "resources": { "cpu": "2000m", "memory": "4Gi", "gpu": 0, "max_runtime_seconds": 900 }, "concurrency": 1, "egress": { "allow_hosts": [ "*" ], "allow_internal_services": [], "deny_internet_by_default": false }, "tools_used": [ "seleniumbase", "playwright", "browser-to-api", "openapi" ], "llm_provisioning": "platform", "pricing": { "price_per_call_usd": 0.0, "caller_pays_llm": false, "notes": "" }, "wants_cp_jwt": false, "platform_resources": { "memory": null, "databases": [] }, "endpoints": [], "apt_packages": [] }, "template_lineage": null, "meta_agent_manifest": null, "state_schema": null, "workspace_access": { "enabled": false, "max_files": 0, "allowed_modes": [], "require_reason": true, "deny_patterns": [], "require_human_approval": false, "max_total_size_bytes": 104857600 }, "config_schema": { "properties": {}, "title": "BrowserToApiConfig", "type": "object" }, "auth": { "model": "a2a_pack.auth.NoAuth", "strategy": "public", "principal_schema": { "additionalProperties": false, "description": "Public agent: no caller identity required.", "properties": {}, "title": "NoAuth", "type": "object" }, "resolver": null, "required": false }, "metadata": { "source": "python-a2a-pack", "project_manifest": { "name": "seleniumbase-website-scraper", "version": "0.2.9", "entrypoint": "agent:BrowserToApiAgent" } } }