Browserless · Arazzo Workflow

Browserless Performance Audit

Version 1.0.0

Run a Lighthouse-style performance audit on a URL, then capture a screenshot of the audited page.

1 workflow 1 source API 1 provider
View Spec View on GitHub Headless BrowserBrowser InfrastructureWeb AutomationAI AgentsWeb ScrapingBrowserQLPuppeteerPlaywrightSeleniumCDPStealthCAPTCHA SolvingResidential ProxyPDF GenerationScreenshotsSmart ScrapeCrawlSearchMCPSession RecordingHybrid AutomationArazzoWorkflows

Provider

browserless

Workflows

performance-audit
Audit a URL's performance and capture a matching screenshot.
Runs a Lighthouse-style performance audit against the URL via /chrome/performance, then captures a full-page screenshot of the same URL so the audit results are accompanied by a visual snapshot.
2 steps inputs: budgets, token, url outputs: report, screenshot
1
runPerformance
{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1performance/post
Run a Lighthouse-style performance audit on the URL, returning the audit report as a JSON object.
2
captureScreenshot
{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1screenshot/post
Capture a full-page PNG screenshot of the audited URL to accompany the performance report.

Source API Descriptions

Arazzo Workflow Specification

browserless-performance-audit-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Browserless Performance Audit
  summary: Run a Lighthouse-style performance audit on a URL, then capture a screenshot of the audited page.
  description: >-
    A performance-with-evidence pipeline. The workflow first runs
    /chrome/performance to produce a Lighthouse-style audit (performance, best
    practices, and related budgets) for the target URL, then captures a
    full-page screenshot of the same URL via /chrome/screenshot so the numeric
    audit is paired with a visual snapshot of what was measured. Every step
    spells out its token query parameter and JSON request body inline so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: browserlessApi
  url: ../openapi/browserless-openapi.yml
  type: openapi
workflows:
- workflowId: performance-audit
  summary: Audit a URL's performance and capture a matching screenshot.
  description: >-
    Runs a Lighthouse-style performance audit against the URL via
    /chrome/performance, then captures a full-page screenshot of the same URL so
    the audit results are accompanied by a visual snapshot.
  inputs:
    type: object
    required:
    - token
    - url
    properties:
      token:
        type: string
        description: The Browserless authorization token passed as a query parameter.
      url:
        type: string
        description: The URL of the page to audit and screenshot.
      budgets:
        type: array
        description: Optional Lighthouse budgets to evaluate the audit against.
        items:
          type: object
  steps:
  - stepId: runPerformance
    description: >-
      Run a Lighthouse-style performance audit on the URL, returning the audit
      report as a JSON object.
    operationPath: '{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1performance/post'
    parameters:
    - name: token
      in: query
      value: $inputs.token
    requestBody:
      contentType: application/json
      payload:
        url: $inputs.url
        budgets: $inputs.budgets
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      report: $response.body
  - stepId: captureScreenshot
    description: >-
      Capture a full-page PNG screenshot of the audited URL to accompany the
      performance report.
    operationPath: '{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1screenshot/post'
    parameters:
    - name: token
      in: query
      value: $inputs.token
    requestBody:
      contentType: application/json
      payload:
        url: $inputs.url
        bestAttempt: true
        options:
          fullPage: true
          type: png
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      screenshot: $response.body
  outputs:
    report: $steps.runPerformance.outputs.report
    screenshot: $steps.captureScreenshot.outputs.screenshot