openapi: 3.1.0 info: title: AnchorBrowser Agentic capabilities Batch Sessions API version: 1.0.0 description: APIs to manage all browser-related actions and configuration. servers: - url: https://api.anchorbrowser.io description: API server tags: - name: Batch Sessions paths: /v1/batch-sessions: get: summary: List Batch Sessions description: 'Lists all batch session requests for the authenticated team, with optional filtering by status and pagination support. ' security: - api_key_header: [] tags: - Batch Sessions parameters: - name: status in: query required: false description: Filter batches by status schema: type: string enum: - pending - processing - completed - failed - cancelled - name: page in: query required: false description: Page number (1-based) schema: type: integer minimum: 1 default: 1 - name: limit in: query required: false description: Number of results per page schema: type: integer minimum: 1 maximum: 100 default: 20 - name: created_after in: query required: false description: Filter batches created after this timestamp (ISO 8601) schema: type: string format: date-time - name: created_before in: query required: false description: Filter batches created before this timestamp (ISO 8601) schema: type: string format: date-time responses: '200': description: Batch list retrieved successfully content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BatchSessionListResponseSchema' '401': description: Invalid API Key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' post: summary: Create Batch Sessions description: 'Creates multiple browser sessions in a single batch operation. This endpoint allows you to create up to 5,000 browser sessions simultaneously with the same configuration. The batch will be processed asynchronously, and you can monitor progress using the batch status endpoint. ' security: - api_key_header: [] tags: - Batch Sessions requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BatchSessionRequestSchema' examples: small_batch: summary: Small batch example value: count: 10 configuration: browser: headless: active: true viewport: width: 1440 height: 900 session: timeout: idle_timeout: 10 max_duration: 300 metadata: project: web-scraping environment: production large_batch: summary: Large batch example (from test snippet) value: count: 2500 configuration: browser: headless: active: true viewport: width: 1440 height: 900 recording: active: true session: timeout: idle_timeout: 10 max_duration: 300 tags: - batch-test-comprehensive metadata: test: true description: Comprehensive batch test with 3 sessions responses: '200': description: Batch created successfully content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BatchSessionResponseSchema' '400': description: Invalid request parameters or configuration content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalid_count: summary: Invalid session count value: error: code: 400 message: Session count must be between 1 and 1000 invalid_config: summary: Invalid configuration value: error: code: 400 message: CAPTCHA solver requires proxy to be active '402': description: Payment Required - Insufficient credits for batch creation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too many requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /v1/batch-sessions/{batch_id}: get: summary: Get Batch Session Status description: 'Retrieves detailed status information for a specific batch, including progress, individual session details, and any errors that occurred. ' security: - api_key_header: [] tags: - Batch Sessions parameters: - name: batch_id in: path required: true description: The unique identifier of the batch schema: type: string format: uuid responses: '200': description: Batch status retrieved successfully content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BatchSessionStatusResponseSchema' '401': description: Invalid API Key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Batch not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' patch: summary: Update Batch Session description: 'Updates a batch session. Supports cancelling a running or pending batch, which terminates all running sessions in the batch. ' security: - api_key_header: [] tags: - Batch Sessions parameters: - name: batch_id in: path required: true description: The unique identifier of the batch schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BatchSessionUpdateRequestSchema' examples: cancel_batch: summary: Cancel a running batch value: status: cancelled responses: '200': description: Batch updated successfully content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BatchSessionUpdateResponseSchema' '401': description: Invalid API Key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Batch not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '409': description: Invalid state transition (batch already cancelled or completed) content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' delete: summary: Delete Batch Sessions description: 'Deletes all sessions in a batch. Running sessions will be terminated and all session data will be removed. ' security: - api_key_header: [] tags: - Batch Sessions parameters: - name: batch_id in: path required: true description: The unique identifier of the batch schema: type: string format: uuid responses: '200': description: Batch sessions deleted successfully content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BatchSessionDeleteResponseSchema' '401': description: Invalid API Key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Batch not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /v1/batch-sessions/{batch_id}/retry: post: summary: Retry Failed Batch Sessions description: 'Retries failed sessions in a batch by creating new browser pods for each failed session. The batch status will be set back to ''processing''. ' security: - api_key_header: [] tags: - Batch Sessions parameters: - name: batch_id in: path required: true description: The unique identifier of the batch schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BatchSessionRetryRequestSchema' examples: retry_defaults: summary: Retry with default settings value: retry_failed_only: true max_retries: 1 retry_multiple: summary: Retry with multiple attempts value: retry_failed_only: true max_retries: 3 responses: '200': description: Retry initiated successfully content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BatchSessionRetryResponseSchema' '400': description: No failed sessions to retry content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Invalid API Key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Batch not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: OnePasswordSpecificSecretsConfig: type: object required: - load_mode - secrets properties: load_mode: type: string enum: - specific description: Load specific secrets from 1Password secrets: type: array items: type: string minItems: 1 description: Array of secret references to load example: - op://vault/item/field ProxyConfig: description: 'Proxy Documentation available at [Proxy Documentation](/advanced/proxy) ' type: object oneOf: - $ref: '#/components/schemas/AnchorProxy' - $ref: '#/components/schemas/CustomProxy' SessionCreateRequestSchema: type: object properties: session: $ref: '#/components/schemas/SessionConfig' browser: $ref: '#/components/schemas/BrowserConfig' integrations: type: array description: Array of integrations to load in the browser session. Integrations must be previously created using the Integrations API. items: $ref: '#/components/schemas/Integration' example: - id: 550e8400-e29b-41d4-a716-446655440000 type: 1PASSWORD configuration: load_mode: all identities: description: 'Activates an authenticated session. ' type: array items: type: object description: Previously configured identity to be used for the authenticated session. properties: id: type: string description: The identity ID to use for the browser session. example: - id: 123e4567-e89b-12d3-a456-426614174000 AnchorProxy: title: Anchor Proxy type: object properties: active: type: boolean type: type: string enum: - anchor_proxy description: Create a session with a proxy to access websites as if you're browsing from a computer in that country. title: anchor_proxy country_code: $ref: '#/components/schemas/AnchorProxyCountryCode' description: 'Supported country codes ISO 2 lowercase ' region: type: string description: 'Region code for more specific geographic targeting. The city parameter can only be used when region is also provided. ' city: type: string description: 'City name for precise geographic targeting. Supported for anchor_proxy only. Can only be used when region is also provided. ' required: - active Integration: oneOf: - $ref: '#/components/schemas/OnePasswordIntegration' discriminator: propertyName: type BatchSessionListResponseSchema: type: object properties: batches: type: array items: $ref: '#/components/schemas/BatchSessionListItemSchema' description: Array of batch session summaries pagination: type: object properties: current_page: type: integer description: Current page number total_pages: type: integer description: Total number of pages total_records: type: integer description: Total number of batch records has_next: type: boolean description: Whether there is a next page has_prev: type: boolean description: Whether there is a previous page BatchSessionItemSchema: type: object properties: item_index: type: integer description: Index of this session within the batch (0-based) session_id: type: string format: uuid description: Unique identifier for the browser session (if created successfully) status: type: string enum: - pending - processing - completed - failed - cancelled description: Current status of this individual session cdp_url: type: string description: CDP websocket connection URL (if session is ready) live_view_url: type: string description: Live view URL for the session (if session is ready) error: type: string description: Error message if session creation failed retry_count: type: integer description: Number of times this session creation has been retried started_at: type: string format: date-time description: Timestamp when session creation started completed_at: type: string format: date-time description: Timestamp when session creation completed metadata: type: object additionalProperties: true description: Session-specific metadata ErrorResponse: type: object properties: error: type: object properties: code: type: integer message: type: string OnePasswordConfig: oneOf: - $ref: '#/components/schemas/OnePasswordAllSecretsConfig' - $ref: '#/components/schemas/OnePasswordSpecificSecretsConfig' AnchorProxyCountryCode: type: string title: anchor_proxy enum: - af - al - dz - ad - ao - as - ag - ar - am - aw - au - at - az - bs - bh - bb - by - be - bz - bj - bm - bo - ba - br - bg - bf - cm - ca - cv - td - cl - co - cg - cr - ci - hr - cu - cy - cz - dk - dm - do - ec - eg - sv - ee - et - fo - fi - fr - gf - pf - ga - gm - ge - de - gh - gi - gr - gd - gp - gt - gg - gn - gw - gy - ht - hn - hu - is - in - ir - iq - ie - il - it - jm - jp - jo - kz - kw - kg - lv - lb - ly - li - lt - lu - mk - ml - mt - mq - mr - mx - md - mc - me - ma - nl - nz - ni - ng - 'no' - pk - pa - py - pe - ph - pl - pt - pr - qa - ro - lc - sm - sa - sn - rs - sc - sl - sk - si - so - za - kr - es - sr - se - ch - sy - st - tw - tj - tg - tt - tn - tr - tc - ua - ae - us - uy - uz - ve - ye default: us OnePasswordAllSecretsConfig: type: object required: - load_mode properties: load_mode: type: string enum: - all description: Load all secrets from 1Password SessionConfig: type: object description: Session-related configurations. properties: initial_url: type: string format: uri description: The URL to navigate to when the browser session starts. If not provided, the browser will load an empty page. tags: type: array items: type: string description: Custom labels to categorize and identify browser sessions. Useful for filtering, organizing, and tracking sessions across your workflows. example: - production - scraping - customer-123 recording: type: object description: Configuration for session recording. properties: active: type: boolean description: Enable or disable video recording of the browser session. Defaults to `true`. proxy: $ref: '#/components/schemas/ProxyConfig' timeout: type: object description: Timeout configurations for the browser session. properties: max_duration: type: integer description: Maximum time (in minutes) the session can run before automatically terminating. Defaults to `20`. Set to `-1` to disable this limit. idle_timeout: type: integer description: Time (in minutes) the session waits for new connections after all others are closed before stopping. Defaults to `5`. Set to `-1` to disable this limit. live_view: type: object description: Configuration for live viewing the browser session. properties: read_only: type: boolean description: Enable or disable read-only mode for live viewing. Defaults to `false`. one_time_url: type: boolean description: Generate a single-use live view URL. After the first viewer connects, the link becomes invalid. Requires a headful browser. Defaults to `false`. BatchSessionUpdateResponseSchema: type: object properties: batch_id: type: string format: uuid description: Unique identifier for the batch status: type: string enum: - cancelled description: New status of the batch cancelled_sessions: type: integer description: Number of running sessions that were terminated message: type: string description: Summary message BatchSessionRetryResponseSchema: type: object properties: batch_id: type: string format: uuid description: Unique identifier for the batch status: type: string enum: - pending - processing - completed - failed - cancelled description: Current status of the batch after retry retried_sessions: type: integer description: Number of sessions that were retried message: type: string description: Summary message BatchSessionListItemSchema: type: object properties: batch_id: type: string format: uuid description: Unique identifier for the batch status: type: string enum: - pending - processing - completed - failed - cancelled description: Current status of the batch total_requests: type: integer description: Total number of sessions requested completed_requests: type: integer description: Number of sessions successfully completed failed_requests: type: integer description: Number of sessions that failed created_at: type: string format: date-time description: Timestamp when the batch was created actual_completion_time: type: string format: date-time description: Timestamp when the batch completed (if completed) BatchSessionRetryRequestSchema: type: object properties: retry_failed_only: type: boolean default: true description: Whether to only retry failed sessions max_retries: type: integer minimum: 1 maximum: 3 default: 1 description: Maximum number of attempts per failed session. Each session is retried up to this many times, stopping on first success. OnePasswordIntegration: type: object required: - id - type - configuration properties: id: type: string format: uuid description: Unique integration ID example: 550e8400-e29b-41d4-a716-446655440000 type: type: string enum: - 1PASSWORD description: Integration type configuration: $ref: '#/components/schemas/OnePasswordConfig' CustomProxy: title: Custom Proxy type: object properties: type: type: string enum: - custom server: type: string description: Proxy address in **PROTOCOL://HOST:PORT** format (e.g., https://proxy.example.com:443). See [proxy page](/advanced/proxy#custom-proxy). username: type: string description: Proxy username password: type: string description: Proxy password active: type: boolean required: - type - server - username - password - active BrowserConfig: type: object description: Browser-specific configurations. properties: profile: type: object description: Options for managing and persisting browser session profiles. properties: name: type: string description: The name of the profile to be used during the browser session. persist: type: boolean description: Indicates whether the browser session profile data should be saved when the browser session ends. Defaults to `false`. adblock: type: object description: Configuration for ad-blocking. properties: active: type: boolean description: Enable or disable ad-blocking. Defaults to `true`. popup_blocker: type: object description: Configuration for popup blocking. properties: active: type: boolean description: Blocks popups, including ads and CAPTCHA consent banners. Requires adblock to be active. Defaults to `true`. captcha_solver: type: object description: Configuration for captcha-solving. properties: active: type: boolean description: Enable or disable captcha-solving. Requires proxy to be active. Defaults to `false`. headless: type: object description: Configuration for headless mode. properties: active: type: boolean description: Whether browser should be headless or headful. Defaults to `false`. viewport: type: object description: Configuration for the browser's viewport size. properties: width: type: integer description: Width of the viewport in pixels. Defaults to `1440`. height: type: integer description: Height of the viewport in pixels. Defaults to `900`. fullscreen: type: object description: Configuration for fullscreen mode. properties: active: type: boolean description: Enable or disable fullscreen mode. When enabled, the browser will start in fullscreen mode. Defaults to `false`. pdf_viewer: type: object description: Configuration for PDF viewer mode. properties: active: type: boolean description: Enable or disable PDF viewer mode. When disabled, the browser will download PDFs instead of viewing them. Defaults to `true`. p2p_download: type: object description: Configuration for peer-to-peer download capture functionality. properties: active: type: boolean description: Enable or disable P2P downloads. When enabled, the browser will capture downloads for direct data extraction, instead of uploading them on Anchor's storage. Defaults to `false`. extensions: type: array description: Array of extension IDs to load in the browser session. Extensions must be previously uploaded using the Extensions API. items: type: string format: uuid disable_web_security: type: object description: Configuration for disabling web security features. properties: active: type: boolean description: Whether to disable web security features (CORS, same-origin policy, etc.). Allows accessing iframes and resources from different origins. Defaults to `false`. extra_stealth: type: object description: Enables our dedicated patched Chromium build, designed to avoid bot detection and blocking. Works with Anchor Proxy enabled only. properties: active: type: boolean description: Enable or disable extra stealth mode. force_popups_as_tabs: type: object description: Configuration for forcing popups to open as tabs instead of popup windows. properties: active: type: boolean description: Enable or disable forcing popups as tabs. Defaults to `false`. web_bot_auth: type: object description: Configuration for Cloudflare Web Bot Auth HTTP message signing. Enables authentication with websites that require Cloudflare's web bot authentication. properties: active: type: boolean description: Enable or disable web bot auth. Defaults to `false`. disable_dialogs: type: object description: Suppresses native browser dialogs (window.alert, window.confirm, window.prompt). Useful for automated workflows where dialogs would block execution. properties: active: type: boolean description: Enable or disable suppression of native browser dialogs. Defaults to `false`. tracing: type: object description: Configuration for browser tracing and debugging capabilities. properties: active: type: boolean description: Enable or disable tracing. Defaults to `true`. snapshots: type: boolean description: Enable or disable snapshot capture in traces. Defaults to `false`. sources: type: boolean description: Enable or disable source code capture in traces. Defaults to `true`. sensitive_data_mask: type: object description: Automatically detects and masks sensitive data (passwords, emails, phone numbers, credit card fields, tokens) in web pages. Supports custom CSS selectors globally or per site, and custom regex patterns. properties: active: type: boolean description: Enable or disable sensitive data masking. Defaults to `false`. custom_selectors: type: array items: type: string description: Additional CSS selectors to mask globally across all sites. Matched elements will be blurred. site_selectors: type: object additionalProperties: type: array items: type: string description: Per-site CSS selectors. Keys are hostnames (supports wildcard prefix like `*.bank.com`), values are arrays of CSS selectors. Matched elements will be blurred. custom_patterns: type: array items: type: object properties: regex: type: string description: Regular expression pattern to match sensitive data. mask: type: string description: Replacement string for matched text. Defaults to `****`. description: Custom regex patterns to detect and mask additional sensitive data types. BatchSessionResponseSchema: type: object properties: batch_id: type: string format: uuid description: Unique identifier for the batch status: type: string enum: - pending - processing - completed - failed - cancelled description: Current status of the batch total_requests: type: integer description: Total number of sessions requested in the batch created_at: type: string format: date-time description: Timestamp when the batch was created BatchSessionUpdateRequestSchema: type: object required: - status properties: status: type: string enum: - cancelled description: Target status for the batch BatchSessionDeleteResponseSchema: type: object properties: batch_id: type: string format: uuid description: Unique identifier for the batch deleted_sessions: type: integer description: Number of sessions successfully deleted failed_deletions: type: integer description: Number of sessions that failed to delete errors: type: array items: type: object properties: session_id: type: string description: ID of the session that failed to delete error: type: string description: Error message description: Details of deletion failures (only present if there were failures) message: type: string description: Summary message of the deletion operation BatchSessionStatusResponseSchema: type: object properties: batch_id: type: string format: uuid description: Unique identifier for the batch status: type: string enum: - pending - processing - completed - failed - cancelled description: Current status of the batch total_requests: type: integer description: Total number of sessions requested completed_requests: type: integer description: Number of sessions successfully created failed_requests: type: integer description: Number of sessions that failed to create processing_requests: type: integer description: Number of sessions currently being processed pending_requests: type: integer description: Number of sessions waiting to be processed created_at: type: string format: date-time description: Timestamp when the batch was created actual_completion_time: type: string format: date-time description: Timestamp when the batch completed (if completed) error: type: string description: Error message if batch failed sessions: type: array items: $ref: '#/components/schemas/BatchSessionItemSchema' description: Array of individual session details progress: type: object properties: percentage: type: number minimum: 0 maximum: 100 description: Completion percentage (0-100) current_phase: type: string enum: - queued - provisioning - configuring - ready description: Current processing phase BatchSessionRequestSchema: type: object required: - count properties: count: type: integer minimum: 1 maximum: 1000 description: Number of sessions to create in the batch (1-1000) configuration: $ref: '#/components/schemas/SessionCreateRequestSchema' description: Configuration that applies to all sessions in the batch metadata: type: object additionalProperties: true description: Optional batch-level metadata for identification and organization securitySchemes: api_key_header: type: apiKey in: header name: anchor-api-key description: API key passed in the header