Bright Data Scraping Browser API

Fully managed remote Chromium browsers driven over CDP/WebSocket from Puppeteer, Playwright, or Selenium. Each session ships with built-in unlocker logic, residential proxy egress, CAPTCHA solving, and fingerprint management so JavaScript-heavy and interactive flows complete reliably. REST endpoints expose session inventory (`GET /browser_sessions`) for observability and lifecycle inspection.

OpenAPI Specification

bright-data-scraping-browser-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bright Data Scraping Browser API
  description: |
    Scraping Browser provides fully managed remote Chromium browsers controlled via CDP/WebSocket
    from Puppeteer, Playwright, or Selenium. The browser session includes built-in unlocker logic,
    residential proxy egress, CAPTCHA solving, and fingerprint management.

    Driver control happens over WebSocket. This REST surface exposes session inventory and lifecycle
    inspection for observability and management.
  version: '1.0'
  contact:
    name: Bright Data
    url: https://docs.brightdata.com
servers:
  - url: https://api.brightdata.com
    description: REST control plane
  - url: wss://brd.superproxy.io:9222
    description: Browser CDP endpoint
security:
  - BearerAuth: []
tags:
  - name: Sessions
    description: Inspect active Scraping Browser sessions.
paths:
  /browser_sessions:
    get:
      summary: List Browser Sessions
      operationId: listBrowserSessions
      tags: [Sessions]
      parameters:
        - { name: zone, in: query, schema: { type: string } }
        - { name: status, in: query, schema: { type: string, enum: [active, closed] } }
      responses:
        "200":
          description: Sessions.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    session_id: { type: string }
                    zone: { type: string }
                    status: { type: string }
                    started: { type: string, format: date-time }
                    duration_ms: { type: integer }
                    pages: { type: integer }
                    bytes: { type: integer }
  /browser_sessions/{session_id}:
    parameters:
      - { name: session_id, in: path, required: true, schema: { type: string } }
    get:
      summary: Get Browser Session
      operationId: getBrowserSession
      tags: [Sessions]
      responses:
        "200":
          description: Session detail.
          content:
            application/json:
              schema:
                type: object
                properties:
                  session_id: { type: string }
                  zone: { type: string }
                  status: { type: string }
                  started: { type: string, format: date-time }
                  duration_ms: { type: integer }
                  pages: { type: integer }
                  bytes: { type: integer }
                  events:
                    type: array
                    items: { type: object, additionalProperties: true }
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer