Bright Data · Arazzo Workflow

Bright Data Deep Lookup Research and Download

Version 1.0.0

Preview a Deep Lookup query, trigger it, poll until ready, and download results.

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

Provider

bright-data

Workflows

research-and-download
Preview, trigger, poll, and download a Deep Lookup research request.
Previews the query to estimate the result shape, triggers the lookup, polls the request status until it is ready, and downloads the delivered entity records.
4 steps inputs: apiToken, category, format, limit, query outputs: estimatedRows, requestId, results
1
previewQuery
previewDeepLookup
Preview the query to estimate the row count and sample shape before committing to a billed lookup.
2
triggerLookup
triggerDeepLookup
Trigger the Deep Lookup request, returning a request id used to poll for status and download.
3
pollStatus
getDeepLookupStatus
Poll the request status until it reaches a terminal state. A ready status means the results are available for download.
4
downloadResults
downloadDeepLookup
Download the delivered entity records once the request reports a ready status.

Source API Descriptions

Arazzo Workflow Specification

bright-data-deep-lookup-research-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Bright Data Deep Lookup Research and Download
  summary: Preview a Deep Lookup query, trigger it, poll until ready, and download results.
  description: >-
    The end-to-end Deep Lookup research pattern. The workflow previews a
    natural-language query to estimate row counts, triggers the lookup, polls
    the request status until it reaches a terminal state, and downloads the
    delivered results once 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: deepLookupApi
  url: ../openapi/bright-data-deep-lookup-api-openapi.yml
  type: openapi
workflows:
- workflowId: research-and-download
  summary: Preview, trigger, poll, and download a Deep Lookup research request.
  description: >-
    Previews the query to estimate the result shape, triggers the lookup,
    polls the request status until it is ready, and downloads the delivered
    entity records.
  inputs:
    type: object
    required:
    - apiToken
    - query
    properties:
      apiToken:
        type: string
        description: Bright Data API token used as a Bearer credential.
      query:
        type: string
        description: Natural-language or structured research prompt.
      category:
        type: string
        description: Entity category to research (company, professional, mixed).
      limit:
        type: integer
        description: Maximum number of results to deliver.
      format:
        type: string
        description: Download format (json, ndjson, csv).
  steps:
  - stepId: previewQuery
    description: >-
      Preview the query to estimate the row count and sample shape before
      committing to a billed lookup.
    operationId: previewDeepLookup
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    requestBody:
      contentType: application/json
      payload:
        query: $inputs.query
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      estimatedRows: $response.body#/estimated_rows
  - stepId: triggerLookup
    description: >-
      Trigger the Deep Lookup request, returning a request id used to poll for
      status and download.
    operationId: triggerDeepLookup
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    requestBody:
      contentType: application/json
      payload:
        query: $inputs.query
        category: $inputs.category
        limit: $inputs.limit
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      requestId: $response.body#/request_id
  - stepId: pollStatus
    description: >-
      Poll the request status until it reaches a terminal state. A ready status
      means the results are available for download.
    operationId: getDeepLookupStatus
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    - name: request_id
      in: path
      value: $steps.triggerLookup.outputs.requestId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      rows: $response.body#/rows
    onSuccess:
    - name: lookupReady
      type: goto
      stepId: downloadResults
      criteria:
      - context: $response.body
        condition: $.status == "ready"
        type: jsonpath
    - name: keepPolling
      type: goto
      stepId: pollStatus
      criteria:
      - context: $response.body
        condition: $.status == "pending" || $.status == "running"
        type: jsonpath
  - stepId: downloadResults
    description: >-
      Download the delivered entity records once the request reports a ready
      status.
    operationId: downloadDeepLookup
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    - name: request_id
      in: path
      value: $steps.triggerLookup.outputs.requestId
    - name: format
      in: query
      value: $inputs.format
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      results: $response.body
  outputs:
    requestId: $steps.triggerLookup.outputs.requestId
    estimatedRows: $steps.previewQuery.outputs.estimatedRows
    results: $steps.downloadResults.outputs.results