Skip to content

Execute Browser Code

Execute code in a sandboxed browser environment.

Headers

HeaderValue
AuthorizationBearer <API_KEY>
Content-Typeapplication/json

Request Body

ParameterTypeRequiredDefaultDescription
codestringYes-Code to execute (1-100,000 characters)
languagestringNo"node"Language of the code: "python", "node", or "bash" (for agent-browser CLI commands)
timeoutnumberNo-Execution timeout in seconds (1-300)

Response

FieldTypeDescription
successbooleanWhether the code executed successfully
stdoutstringStandard output from the code execution
resultstringStandard output from the code execution
stderrstringStandard error output from the code execution
exitCodenumberExit code of the executed process
killedbooleanWhether the process was killed due to timeout
errorstringError message if execution failed (only present on failure)

Example Request

bash
curl -X POST "https://api.firecrawl.dev/v2/browser/550e8400-e29b-41d4-a716-446655440000/execute" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "code": "await page.goto(\"https://example.com\")\ntitle = await page.title()\nprint(title)",
  "language": "python"
}'

Example Response (Success)

json
{
"success": true,
"result": "Example Domain"
}

Example Response (Error)

json
{
"success": true,
"error": "TimeoutError: page.goto: Timeout 30000ms exceeded."
}

Are you an AI agent that needs a Firecrawl API key? See firecrawl.dev/agent-onboarding/SKILL.md for automated onboarding instructions.

OpenAPI

yaml
openapi: 3.0.0
info:
title: Firecrawl API
version: v2
description: >-
  API for interacting with Firecrawl services to perform web scraping and
  crawling tasks.
contact:
  name: Firecrawl Support
  url: https://firecrawl.dev/support
  email: support@firecrawl.dev
servers:
- url: https://api.firecrawl.dev/v2
security:
- bearerAuth: []
paths:
/browser/{sessionId}/execute:
  post:
    tags:
      - Browser
    summary: Execute code in a browser session
    operationId: executeBrowserCode
    parameters:
      - name: sessionId
        in: path
        required: true
        schema:
          type: string
        description: The browser session ID
    requestBody:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - code
            properties:
              code:
                type: string
                minLength: 1
                maxLength: 100000
                description: Code to execute in the browser sandbox
              language:
                type: string
                enum:
                  - python
                  - node
                  - bash
                default: node
                description: >-
                  Language of the code to execute. Use `node` for JavaScript
                  or `bash` for agent-browser CLI commands.
              timeout:
                type: integer
                minimum: 1
                maximum: 300
                description: Execution timeout in seconds
    responses:
      '200':
        description: Code executed successfully
        content:
          application/json:
            schema:
              type: object
              properties:
                success:
                  type: boolean
                stdout:
                  type: string
                  nullable: true
                  description: Standard output from the code execution
                result:
                  type: string
                  nullable: true
                  description: Standard output (alias for stdout)
                stderr:
                  type: string
                  nullable: true
                  description: Standard error output from the code execution
                exitCode:
                  type: integer
                  nullable: true
                  description: Exit code of the executed process
                killed:
                  type: boolean
                  description: Whether the process was killed due to timeout
                error:
                  type: string
                  nullable: true
                  description: Error message if the code raised an exception
      '402':
        description: Payment required
        content:
          application/json:
            schema:
              type: object
              properties:
                error:
                  type: string
                  example: Payment required to access this resource.
    security:
      - bearerAuth: []
components:
securitySchemes:
  bearerAuth:
    type: http
    scheme: bearer