> ## Documentation Index
> Fetch the complete documentation index at: https://docs.driver.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a pool

> Create a browser pool and begin warming ordinary browser sessions.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/browser/pools
openapi: 3.0.0
info:
  version: 1.0.0
  title: Driver API
  description: API for interacting with the Driver.dev browser network.
  contact:
    name: Driver support
    email: alex@driver.dev
servers:
  - url: https://api.driver.dev
    description: Production
security: []
tags:
  - name: Sessions
  - name: Profiles
  - name: Account
  - name: Extensions
  - name: Pools
externalDocs:
  url: https://docs.driver.dev
  description: Driver documentation
paths:
  /v1/browser/pools:
    post:
      tags:
        - Pools
      summary: Create a pool
      description: Create a browser pool and begin warming ordinary browser sessions.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 64
                  description: Unique in the workspace, 1 to 64 characters.
                size:
                  type: integer
                  minimum: 0
                  exclusiveMinimum: true
                  description: >-
                    Browsers to keep ready. All pools together may keep 30 warm
                    per account.
                browser:
                  type: object
                  properties:
                    nodeId:
                      type: string
                    country:
                      type: string
                      minLength: 2
                      maxLength: 2
                    proxyUrl:
                      type: string
                      format: uri
                    windowSize:
                      type: string
                      pattern: ^\d+x\d+$/i
                    displaySize:
                      type: string
                      pattern: ^\d+x\d+$/i
                    url:
                      type: string
                      format: uri
                    timezone:
                      type: string
                    language:
                      type: string
                    acceptLang:
                      type: string
                    ttsLanguage:
                      type: string
                    disableSpeechApi:
                      type: boolean
                    profile:
                      type: object
                      properties:
                        name:
                          type: string
                          minLength: 1
                        persist:
                          type: boolean
                      required:
                        - name
                      additionalProperties: false
                    adblock:
                      type: boolean
                    captchaSolver:
                      type: boolean
                    extensionIds:
                      type: array
                      items:
                        type: string
                    note:
                      type: string
                      maxLength: 256
                    gpu:
                      type: string
                    tags:
                      type: array
                      items:
                        type: string
                  default: {}
                  additionalProperties: false
                  description: >-
                    The create options every browser in the pool starts with
                    (same fields as POST /v1/browser/session, without type,
                    duration and browserCheck). Validated like a create body (an
                    unsupported country is a 400). Responses echo the template
                    with the resolved timezone and a redacted proxyUrl.
                leaseTimeoutSeconds:
                  type: integer
                  minimum: 30
                  maximum: 86400
                  description: >-
                    How long an acquired browser may be held, in seconds (30 to
                    86400, default 900). The session is stopped when the lease
                    expires.
                maxReadyAgeSeconds:
                  type: integer
                  minimum: 30
                  maximum: 86400
                  description: >-
                    How long a browser may wait ready before it is replaced with
                    a fresh one, in seconds (30 to 86400, default 3600).
              required:
                - name
                - size
              additionalProperties: false
      responses:
        '201':
          description: Pool created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 6
                    maxLength: 80
                    example: pool_8ca73065e49d44f3a7825743745b2948
                  name:
                    type: string
                  size:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                  status:
                    type: string
                    enum:
                      - warming
                      - ready
                      - degraded
                      - paused
                      - deleting
                  ready:
                    type: integer
                    minimum: 0
                  starting:
                    type: integer
                    minimum: 0
                  leased:
                    type: integer
                    minimum: 0
                  browser:
                    type: object
                    properties:
                      nodeId:
                        type: string
                      country:
                        type: string
                        minLength: 2
                        maxLength: 2
                      proxyUrl:
                        type: string
                        format: uri
                      windowSize:
                        type: string
                        pattern: ^\d+x\d+$/i
                      displaySize:
                        type: string
                        pattern: ^\d+x\d+$/i
                      url:
                        type: string
                        format: uri
                      timezone:
                        type: string
                      language:
                        type: string
                      acceptLang:
                        type: string
                      ttsLanguage:
                        type: string
                      disableSpeechApi:
                        type: boolean
                      profile:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                          persist:
                            type: boolean
                        required:
                          - name
                        additionalProperties: false
                      adblock:
                        type: boolean
                      captchaSolver:
                        type: boolean
                      extensionIds:
                        type: array
                        items:
                          type: string
                      note:
                        type: string
                        maxLength: 256
                      gpu:
                        type: string
                      tags:
                        type: array
                        items:
                          type: string
                    additionalProperties: false
                  leaseTimeoutSeconds:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                  maxReadyAgeSeconds:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                  lastError:
                    type: string
                    nullable: true
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                required:
                  - id
                  - name
                  - size
                  - status
                  - ready
                  - starting
                  - leased
                  - browser
                  - leaseTimeoutSeconds
                  - maxReadyAgeSeconds
                  - lastError
                  - createdAt
                  - updatedAt
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '404':
          description: Pool not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '409':
          description: >-
            A pool with that name already exists, or the size would exceed the
            warm-browser cap of the account ("Pool capacity 32 exceeds your pool
            limit of 30").
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '503':
          description: Browser service unavailable
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
      security:
        - Bearer: []
components:
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      description: >-
        A workspace API key from Settings → API keys in the dashboard
        (https://app.driver.dev), sent as a bearer token.

````