Browserless · Arazzo Workflow

Browserless Function Then Download

Version 1.0.0

Use the function API to drive a page that triggers a file download, then retrieve the downloaded artifacts via the download API.

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

function-download
Prepare a page with a custom function, then trigger and retrieve a download.
Runs a setup function via /chrome/function to ready the page, then runs /chrome/download with code that triggers the file download and returns the captured artifacts.
2 steps inputs: context, downloadCode, setupCode, token outputs: download, setupResult
1
prepareFunction
{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1function/post
Run the setup JavaScript against a Browserless session to navigate to and prepare the page that will emit the download.
2
triggerDownload
{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1download/post
Run the download JavaScript, which triggers the file download. The response carries the captured downloaded artifacts.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Browserless Function Then Download
  summary: Use the function API to drive a page that triggers a file download, then retrieve the downloaded artifacts via the download API.
  description: >-
    A driven-download pipeline. The workflow first runs custom JavaScript via
    /chrome/function to prepare and navigate a page (for example, logging in or
    locating a downloadable resource), then runs /chrome/download with code that
    triggers the actual download and returns the downloaded file artifacts. The
    download API is purpose-built to capture files that a page emits to disk
    during automation. Every step spells out its token query parameter and
    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: function-download
  summary: Prepare a page with a custom function, then trigger and retrieve a download.
  description: >-
    Runs a setup function via /chrome/function to ready the page, then runs
    /chrome/download with code that triggers the file download and returns the
    captured artifacts.
  inputs:
    type: object
    required:
    - token
    - setupCode
    - downloadCode
    properties:
      token:
        type: string
        description: The Browserless authorization token passed as a query parameter.
      setupCode:
        type: string
        description: JavaScript to prepare or navigate the page before downloading.
      downloadCode:
        type: string
        description: JavaScript that triggers the file download to be captured.
      context:
        type: object
        description: Optional context values passed into the executed functions.
  steps:
  - stepId: prepareFunction
    description: >-
      Run the setup JavaScript against a Browserless session to navigate to and
      prepare the page that will emit the download.
    operationPath: '{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1function/post'
    parameters:
    - name: token
      in: query
      value: $inputs.token
    requestBody:
      contentType: application/json
      payload:
        code: $inputs.setupCode
        context: $inputs.context
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      result: $response.body
  - stepId: triggerDownload
    description: >-
      Run the download JavaScript, which triggers the file download. The
      response carries the captured downloaded artifacts.
    operationPath: '{$sourceDescriptions.browserlessApi.url}#/paths/~1chrome~1download/post'
    parameters:
    - name: token
      in: query
      value: $inputs.token
    requestBody:
      contentType: application/json
      payload:
        code: $inputs.downloadCode
        context: $inputs.context
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      download: $response.body
  outputs:
    setupResult: $steps.prepareFunction.outputs.result
    download: $steps.triggerDownload.outputs.download

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/browserless-function-download-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.