# Bright Data Web Scraper API - Structured Web & Company Data (`nabeelbaghoor/brightdata-web-data-api`) Actor

Run any Bright Data Web Scraper dataset and export structured records - company, jobs, profiles, products and more - straight to a dataset as JSON, CSV or Excel. Trigger, poll and download automated for you. Pay per result. Bring your own API key.

- **URL**: https://apify.com/nabeelbaghoor/brightdata-web-data-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Jobs, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 record results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Bright Data Web Scraper API - structured web and company data

**Bright Data Web Scraper API** turns any Bright Data Web Scraper dataset into a clean, structured export. Trigger a dataset, wait for it to finish, and download the results - company data, job listings, profiles, products and more - as JSON, CSV or Excel. The trigger, poll and download steps are fully automated for you.

Bring your own Bright Data API token and pay only for the records you keep.

### Why use this actor?

- **Automated async flow** - the actor triggers the scraper, polls the snapshot until it is ready, and downloads the records for you. No manual snapshot juggling.
- **Any dataset via dataset\_id** - point it at any Bright Data Web Scraper dataset id (looks like `gd_xxxxxxxx`) and it runs, whatever the target site.
- **Pass-through structured records** - each record is returned as-is, so you always get the full, dataset-specific fields, plus a few common columns (url, name, id) surfaced for quick scanning.
- **Discovery or direct inputs** - scrape exact input URLs, or switch on discovery (keyword, category URL, location, best sellers URL) to find new records.
- **Pay per result** - you are charged only for the records actually returned, up to 5,000 per run.

### Use cases

- **Company data** - pull structured company profiles from LinkedIn, Crunchbase and other supported sources.
- **Job listings** - collect job postings for market and hiring analysis.
- **Profiles** - gather people or company profiles for enrichment and research.
- **Product data** - scrape ecommerce product and pricing data for competitive monitoring.
- **Market research** - build datasets across sites for analysis, dashboards and machine learning.

### Input

Configure everything from the visual editor - every option is a proper field, no code needed. Example JSON input:

```json
{
  "datasetId": "gd_l1viktl72bvl7bjuj0",
  "inputs": [
    { "url": "https://www.linkedin.com/company/ibm" },
    { "url": "https://www.linkedin.com/company/microsoft" }
  ],
  "maxResults": 100,
  "apiKey": "YOUR_BRIGHT_DATA_TOKEN"
}
```

To run discovery instead of scraping exact inputs, set `discoverBy`:

```json
{
  "datasetId": "gd_l1viktl72bvl7bjuj0",
  "discoverBy": "keyword",
  "inputs": [{ "keyword": "software companies" }],
  "limitPerInput": 50,
  "maxResults": 200,
  "apiKey": "YOUR_BRIGHT_DATA_TOKEN"
}
```

### Output

Records vary per dataset, so each one is passed through exactly as Bright Data returns it. A few common top-level fields (url, name, id) are surfaced when present. An example generic record:

```json
{
  "url": "https://www.linkedin.com/company/ibm",
  "name": "IBM",
  "id": "1009",
  "industry": "IT Services and IT Consulting",
  "company_size": "10001+ employees",
  "headquarters": "Armonk, New York",
  "founded": 1911,
  "followers": 15000000
}
```

The exact fields depend entirely on the dataset id you run.

### Do I need an API key?

Yes. This actor calls the Bright Data Web Scraper API on your behalf, which requires your own **Bright Data API token**. Sign up self-serve at brightdata.com, copy the token from your Bright Data account settings, paste it into the input, and run. Your token is stored securely and never logged.

### Pay per result

You pay only for the records the actor actually returns - no subscriptions, no minimums. Set **Maximum results** to cap each run's spend exactly. A run that returns nothing costs almost nothing.

### FAQ

#### What is the Bright Data Web Scraper API?

It is Bright Data's async dataset API for their Web Scraper product. You trigger a dataset with a set of inputs, the scraper collects the data, and you download a structured snapshot of records. This actor automates that trigger, poll and download flow and exports the records as JSON, CSV or Excel.

#### What datasets can I run?

Any Bright Data Web Scraper dataset you have access to. Each dataset has an id that looks like `gd_xxxxxxxx`, found in your Bright Data dashboard. Datasets cover company data, job listings, social and company profiles, ecommerce products and more. The record fields differ from one dataset to the next.

#### How does the async flow work?

Three steps, handled for you: the actor calls the trigger endpoint with your dataset id and inputs and receives a snapshot id, polls the progress endpoint on your chosen interval until the snapshot status is ready, then downloads the full snapshot and pushes each record to the dataset.

#### Do I need an API key?

Yes. You bring your own Bright Data API token. It is self-serve - sign up at brightdata.com, copy the token from account settings, and paste it into the input. The actor authenticates every request with your token via a Bearer header.

#### How many records can I get?

Up to 5,000 records per run. Use **Maximum results** to cap the count and your spend. For larger jobs, split the inputs across multiple runs or use **Limit per input** to bound each input.

#### How much does it cost?

Pricing is pay-per-result: a small fixed amount per record returned, plus standard Apify platform usage, plus your own Bright Data usage against your token. You pay only for records that land in the dataset.

#### Can I run this on a schedule?

Yes. Use Apify Schedules to run it daily or weekly and connect the dataset to Zapier, Make, n8n, webhooks or the API to push fresh records into your CRM, warehouse or analytics stack.

#### Is this legal?

The actor runs Bright Data Web Scraper datasets through Bright Data's own API using your credentials, subject to Bright Data's terms and compliance controls. Use it for data you are permitted to collect, and prefer business and public data over personal data.

### Keyword map

bright data api, web scraper api, brightdata dataset api, web data api, structured web data, company data api, job listings scraper, profile scraper api, product data api, ecommerce scraper api, async scraping api, dataset trigger poll download, pay per result scraper.

### Support and feedback

Found an issue or missing an option? Open an issue in the **Issues** tab - it is monitored daily.

# Actor input Schema

## `datasetId` (type: `string`):

The Bright Data dataset ID to run, e.g. a Web Scraper dataset id that looks like gd\_xxxxxxxx. Find it in your Bright Data dashboard.

## `inputs` (type: `array`):

Array of input objects for the scraper, e.g. \[{"url": "https://www.linkedin.com/company/ibm"}]. Shape depends on the dataset.

## `discoverBy` (type: `string`):

Optional discovery mode. Leave blank to scrape the exact inputs; set to run discovery (type=discover\_new).

## `limitPerInput` (type: `integer`):

Optional cap on how many records to collect per input (maps to limit\_per\_input).

## `includeErrors` (type: `boolean`):

Include per-input error records in the output (maps to include\_errors).

## `maxResults` (type: `integer`):

Stop after this many records. You are charged per result returned.

## `pollIntervalSecs` (type: `integer`):

How often to poll the snapshot progress endpoint while the scraper runs.

## `apiKey` (type: `string`):

Your Bright Data API token. Required. Sign up self-serve at the provider and copy the token from account settings. Stored securely and never logged.

## Actor input object example

```json
{
  "discoverBy": "",
  "includeErrors": false,
  "maxResults": 100,
  "pollIntervalSecs": 10
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/brightdata-web-data-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxResults": 100 }

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/brightdata-web-data-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxResults": 100
}' |
apify call nabeelbaghoor/brightdata-web-data-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nabeelbaghoor/brightdata-web-data-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gWSebSZLdaFgHHCpi/builds/qOMyWitJDc7PtVI1u/openapi.json
