Bright Data · Arazzo Workflow

Bright Data Trigger Web Scraper Job and Download Results

Version 1.0.0

Trigger a Web Scraper collector, poll the snapshot until ready, and download the rows.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Web DataWeb ScrapingProxyResidential ProxyDatacenter ProxyISP ProxyMobile ProxySERPWeb UnlockerScraping BrowserDataset MarketplaceMCPAI AgentsArazzoWorkflows

Provider

bright-data

Workflows

trigger-and-download-scrape
Trigger a scrape, poll the snapshot, and download the results.
Submits a scraping job for a dataset, waits for the resulting snapshot to finish building, and downloads the collected records once the snapshot status is ready.
3 steps inputs: apiToken, datasetId, format, includeErrors, records outputs: rows, snapshotId, status
1
triggerScrape
Trigger an asynchronous scraping job for the dataset using the supplied per-record input payload, returning a snapshot id to poll.
2
pollProgress
Poll the snapshot progress endpoint. Bright Data reports running, building, or collecting while the job is in flight and ready when the rows are available for download.
3
downloadSnapshot
Download the snapshot rows once the snapshot reports a ready status, returning the collected records in the requested format.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Bright Data Trigger Web Scraper Job and Download Results
  summary: Trigger a Web Scraper collector, poll the snapshot until ready, and download the rows.
  description: >-
    The core Bright Data Web Scraper pattern. The workflow triggers an
    asynchronous scraping job against a dataset collector, receives a
    snapshot id, polls the snapshot progress endpoint until the status reaches
    a terminal state, and then downloads the collected rows when the snapshot is
    ready. Every step spells out its request inline so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: scrapeApi
  url: ../openapi/bright-data-scrape-api-openapi.yml
  type: openapi
- name: snapshotsApi
  url: ../openapi/bright-data-snapshots-api-openapi.yml
  type: openapi
workflows:
- workflowId: trigger-and-download-scrape
  summary: Trigger a scrape, poll the snapshot, and download the results.
  description: >-
    Submits a scraping job for a dataset, waits for the resulting snapshot to
    finish building, and downloads the collected records once the snapshot
    status is ready.
  inputs:
    type: object
    required:
    - apiToken
    - datasetId
    - records
    properties:
      apiToken:
        type: string
        description: Bright Data API token used as a Bearer credential.
      datasetId:
        type: string
        description: Bright Data dataset identifier of the collector to run.
      records:
        type: array
        description: Array of per-record input objects passed to the collector.
        items:
          type: object
      includeErrors:
        type: boolean
        description: Whether to include error rows in the snapshot output.
      format:
        type: string
        description: Download format for the snapshot (json, ndjson, csv, jsonl).
  steps:
  - stepId: triggerScrape
    description: >-
      Trigger an asynchronous scraping job for the dataset using the supplied
      per-record input payload, returning a snapshot id to poll.
    operationId: triggerScrape
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    - name: dataset_id
      in: query
      value: $inputs.datasetId
    - name: include_errors
      in: query
      value: $inputs.includeErrors
    requestBody:
      contentType: application/json
      payload: $inputs.records
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      snapshotId: $response.body#/snapshot_id
  - stepId: pollProgress
    description: >-
      Poll the snapshot progress endpoint. Bright Data reports running,
      building, or collecting while the job is in flight and ready when the rows
      are available for download.
    operationId: getScrapeProgress
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    - name: snapshot_id
      in: path
      value: $steps.triggerScrape.outputs.snapshotId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      records: $response.body#/records
    onSuccess:
    - name: snapshotReady
      type: goto
      stepId: downloadSnapshot
      criteria:
      - context: $response.body
        condition: $.status == "ready"
        type: jsonpath
    - name: keepPolling
      type: goto
      stepId: pollProgress
      criteria:
      - context: $response.body
        condition: $.status != "ready" && $.status != "failed" && $.status != "cancelled"
        type: jsonpath
  - stepId: downloadSnapshot
    description: >-
      Download the snapshot rows once the snapshot reports a ready status,
      returning the collected records in the requested format.
    operationId: downloadSnapshot
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    - name: snapshot_id
      in: path
      value: $steps.triggerScrape.outputs.snapshotId
    - name: format
      in: query
      value: $inputs.format
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      rows: $response.body
  outputs:
    snapshotId: $steps.triggerScrape.outputs.snapshotId
    status: $steps.pollProgress.outputs.status
    rows: $steps.downloadSnapshot.outputs.rows

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/bright-data-web-scraper-job-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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