|
192 | 192 | "Tasks" |
193 | 193 | ], |
194 | 194 | "summary": "Create Task", |
195 | | - "description": "Create and start a new task.\n\nYou can either:\n1. Start a new task without a sessionId (auto-creates a session with US proxy by default).\n Note: Tasks without a sessionId are one-off tasks that automatically close the session\n upon completion (keep_alive=false). Use sessionSettings to configure the auto-created\n session (e.g. proxyCountryCode, profileId, screen dimensions).\n2. Start a new task in an existing session (reuse for follow-up tasks or custom configuration)\n\nNote: Without sessionSettings, a US proxy is enabled by default. Providing sessionSettings\noverrides defaults — proxy is only enabled if proxyCountryCode is set. For full control over\nsession configuration (e.g. keep_alive), create a session first via POST /sessions with your\ndesired settings, then pass that sessionId when creating tasks.", |
| 195 | + "description": "Create and start a new task.\n\nYou can either:\n1. Start a new task without a sessionId (auto-creates a session with US proxy by default).\n Note: Tasks without a sessionId are one-off tasks that automatically close the session\n upon completion (keep_alive=false). Use sessionSettings to configure the auto-created\n session (e.g. proxyCountryCode, profileId, screen dimensions).\n2. Start a new task in an existing session (reuse for follow-up tasks or custom configuration)\n\nNote: Without sessionSettings, a US proxy is enabled by default. Providing sessionSettings\noverrides defaults \u2014 proxy is only enabled if proxyCountryCode is set. For full control over\nsession configuration (e.g. keep_alive), create a session first via POST /sessions with your\ndesired settings, then pass that sessionId when creating tasks.", |
196 | 196 | "operationId": "create_task_tasks_post", |
197 | 197 | "security": [ |
198 | 198 | { |
|
1651 | 1651 | "Browsers" |
1652 | 1652 | ], |
1653 | 1653 | "summary": "List Browser Sessions", |
1654 | | - "description": "Get paginated list of browser sessions with optional status filtering.", |
| 1654 | + "description": "Get paginated list of browser sessions with optional status filtering.\n\nList responses intentionally omit per-session presigned recording URLs\n(`recording_url` is always `null` here). Each recording URL requires a\nsynchronous boto3 SigV4 signing call (plus an S3 HEAD) that holds the GIL\nand blocks the event loop. With page_size up to the max this CPU-pegs the\nworker and starves the DB pool, cascading into pool exhaustion across the\nfleet. Clients should fetch the recording URL on demand via\n`GET /api/v2/browsers/{id}`, which signs exactly one URL for a single\nsession. Mirrors the v3 sessions list fix (ENG-4904, PR #4621).", |
1655 | 1655 | "operationId": "list_browser_sessions_browsers_get", |
1656 | 1656 | "security": [ |
1657 | 1657 | { |
1658 | 1658 | "APIKeyHeader": [] |
1659 | 1659 | } |
1660 | 1660 | ], |
1661 | 1661 | "parameters": [ |
| 1662 | + { |
| 1663 | + "name": "metadata", |
| 1664 | + "in": "query", |
| 1665 | + "required": false, |
| 1666 | + "schema": { |
| 1667 | + "anyOf": [ |
| 1668 | + { |
| 1669 | + "type": "array", |
| 1670 | + "items": { |
| 1671 | + "type": "string" |
| 1672 | + } |
| 1673 | + }, |
| 1674 | + { |
| 1675 | + "type": "null" |
| 1676 | + } |
| 1677 | + ], |
| 1678 | + "description": "Only browsers tagged with every one of these terms. `key` matches any value; `key=value` matches exactly. Repeat the param to require more than one (AND).", |
| 1679 | + "title": "Metadata" |
| 1680 | + }, |
| 1681 | + "description": "Only browsers tagged with every one of these terms. `key` matches any value; `key=value` matches exactly. Repeat the param to require more than one (AND)." |
| 1682 | + }, |
1662 | 1683 | { |
1663 | 1684 | "name": "pageSize", |
1664 | 1685 | "in": "query", |
|
1697 | 1718 | ], |
1698 | 1719 | "title": "Filterby" |
1699 | 1720 | } |
| 1721 | + }, |
| 1722 | + { |
| 1723 | + "name": "agentSessionId", |
| 1724 | + "in": "query", |
| 1725 | + "required": false, |
| 1726 | + "schema": { |
| 1727 | + "anyOf": [ |
| 1728 | + { |
| 1729 | + "type": "string", |
| 1730 | + "format": "uuid" |
| 1731 | + }, |
| 1732 | + { |
| 1733 | + "type": "null" |
| 1734 | + } |
| 1735 | + ], |
| 1736 | + "title": "Agentsessionid" |
| 1737 | + } |
1700 | 1738 | } |
1701 | 1739 | ], |
1702 | 1740 | "responses": { |
|
3330 | 3368 | "format": "uuid", |
3331 | 3369 | "title": "Project ID", |
3332 | 3370 | "description": "The ID of the project" |
| 3371 | + }, |
| 3372 | + "tracingDisabled": { |
| 3373 | + "type": "boolean", |
| 3374 | + "title": "Tracing Disabled", |
| 3375 | + "description": "Whether third-party LLM tracing is disabled for this project", |
| 3376 | + "default": false |
3333 | 3377 | } |
3334 | 3378 | }, |
3335 | 3379 | "type": "object", |
|
3526 | 3570 | } |
3527 | 3571 | ], |
3528 | 3572 | "title": "Recording URL", |
3529 | | - "description": "Presigned URL to download the session recording (available after session ends, if recording was enabled)" |
| 3573 | + "description": "Presigned URL to download the session recording. Only populated on `GET /api/v2/browsers/{id}`; always `null` in list responses." |
| 3574 | + }, |
| 3575 | + "metadata": { |
| 3576 | + "additionalProperties": { |
| 3577 | + "type": "string" |
| 3578 | + }, |
| 3579 | + "type": "object", |
| 3580 | + "title": "Metadata", |
| 3581 | + "description": "Caller-supplied labels set when the browser was created.", |
| 3582 | + "default": {} |
3530 | 3583 | } |
3531 | 3584 | }, |
3532 | 3585 | "type": "object", |
|
3698 | 3751 | } |
3699 | 3752 | ], |
3700 | 3753 | "title": "Recording URL", |
3701 | | - "description": "Presigned URL to download the session recording (available after session ends, if recording was enabled)" |
| 3754 | + "description": "Presigned URL to download the session recording, if recording was enabled. Only populated on GET /api/v2/browsers/{session_id}: the upload starts when the browser stops, so it is never ready in the stop response." |
| 3755 | + }, |
| 3756 | + "recordingAvailable": { |
| 3757 | + "type": "boolean", |
| 3758 | + "title": "Recording Available", |
| 3759 | + "description": "False when a recording can never appear for this session: recording was disabled, or the browser stopped long enough ago that the upload is not coming. Only ever false from proof, so a failed recording lookup leaves it true. Clients polling for `recordingUrl` must stop when this is false.", |
| 3760 | + "default": true |
| 3761 | + }, |
| 3762 | + "metadata": { |
| 3763 | + "additionalProperties": { |
| 3764 | + "type": "string" |
| 3765 | + }, |
| 3766 | + "type": "object", |
| 3767 | + "title": "Metadata", |
| 3768 | + "description": "Caller-supplied labels set when the browser was created.", |
| 3769 | + "default": {} |
3702 | 3770 | } |
3703 | 3771 | }, |
3704 | 3772 | "type": "object", |
|
3775 | 3843 | "description": "Country code for proxy location. Defaults to US. Set to null to disable proxy.", |
3776 | 3844 | "default": "us" |
3777 | 3845 | }, |
| 3846 | + "metadata": { |
| 3847 | + "anyOf": [ |
| 3848 | + { |
| 3849 | + "additionalProperties": { |
| 3850 | + "type": "string" |
| 3851 | + }, |
| 3852 | + "maxProperties": 10, |
| 3853 | + "type": "object" |
| 3854 | + }, |
| 3855 | + { |
| 3856 | + "type": "null" |
| 3857 | + } |
| 3858 | + ], |
| 3859 | + "title": "Metadata", |
| 3860 | + "description": "Labels for this browser. Up to 10 key-value pairs. Filterable on the browsers list and in the dashboard history." |
| 3861 | + }, |
3778 | 3862 | "timeout": { |
3779 | 3863 | "type": "integer", |
3780 | 3864 | "title": "Timeout", |
|
4165 | 4249 | } |
4166 | 4250 | ], |
4167 | 4251 | "title": "Thinking Level", |
4168 | | - "description": "Optional model reasoning depth. Omit this field to preserve the provider default. V2 accepts disabled/low/medium/high for browser-use-llm, browser-use-2.0, gemini-2.5-flash, gemini-3-flash-preview, gemini-3.5-flash, gemini-flash-latest, gemini-flash-lite-latest, gpt-5.5, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, claude-sonnet-5, claude-opus-4-7, claude-opus-4-8, and claude-opus-5; low/medium/high for gemini-2.5-pro, o3, and o4-mini; low/high for gemini-3-pro-preview and gemini-3.1-pro-preview; and disabled only for claude-sonnet-4-20250514, claude-sonnet-4-5-20250929, and claude-opus-4-5-20251101. Other V2 models reject an explicit level. V2 cannot configure GLM thinking or enable fixed-budget Claude thinking." |
| 4252 | + "description": "Optional model reasoning depth. Omit this field to preserve the model provider default. Supported values depend on the selected model: most supported Claude models and GPT-5.1+ models support disabled/low/medium/high; Gemini Flash models support all four (disabled maps to Gemini's minimal level); Claude Fable 5, earlier GPT-5 models, Gemini 2.5 Pro, o3/o4, and Grok support low/medium/high; Gemini 3.1 Pro supports low/high; GLM supports disabled/high. Unsupported model/level combinations are rejected. API V2 cannot configure GLM or fixed-budget Claude thinking; use API V3 or V4 for those combinations." |
4169 | 4253 | }, |
4170 | 4254 | "vision": { |
4171 | 4255 | "anyOf": [ |
|
4183 | 4267 | }, |
4184 | 4268 | "systemPromptExtension": { |
4185 | 4269 | "type": "string", |
4186 | | - "maxLength": 2000, |
| 4270 | + "maxLength": 10000, |
4187 | 4271 | "title": "System Prompt Extension", |
4188 | 4272 | "description": "Optional extension to the agent system prompt.", |
4189 | 4273 | "default": "" |
|
5040 | 5124 | "cf", |
5041 | 5125 | "cg", |
5042 | 5126 | "ch", |
| 5127 | + "ci", |
5043 | 5128 | "ck", |
5044 | 5129 | "cl", |
5045 | 5130 | "cm", |
|
6187 | 6272 | "enum": [ |
6188 | 6273 | "browser-use-llm", |
6189 | 6274 | "browser-use-2.0", |
| 6275 | + "bu-2-0-mini-preview", |
6190 | 6276 | "gpt-4.1", |
6191 | 6277 | "gpt-4.1-mini", |
6192 | 6278 | "o4-mini", |
|
0 commit comments