> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brightdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bright Data quickstart

> Scrape your first page with the Bright Data Scraper API in three steps, then build a custom scraper with Scraper Studio for sites it does not cover.

export const ScraperQuickstartCode = () => <CodeGroup>
    <pre language="bash" filename="cURL">{`curl -X POST \\
  "https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_l7q7dkf244hwjntr0&format=json" \\
  -H "Authorization: Bearer YOUR_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '[{"url": "https://www.amazon.com/dp/B0FQFB8FMG"}]'`}</pre>

    <pre language="python" filename="Python">{`from brightdata import SyncBrightDataClient

with SyncBrightDataClient(token="YOUR_API_KEY") as client:
    result = client.scrape.amazon.products(
        url="https://www.amazon.com/dp/B0FQFB8FMG"
    )
    print(result.data)`}</pre>

    <pre language="javascript" filename="Node.js">{`import { bdclient } from '@brightdata/sdk';

const client = new bdclient({ apiKey: 'YOUR_API_KEY' });

const result = await client.scrape.amazon.collectProducts([
  'https://www.amazon.com/dp/B0FQFB8FMG'
]);

console.log(result);
await client.close();`}</pre>
  </CodeGroup>;

Send one request to the Bright Data Scraper API and get structured JSON back.

This guide scrapes an Amazon product page. The same call works for every one of Bright Data's thousands of pre-built scrapers: change the `dataset_id` over HTTP, or call a different method in the SDK.

## Prerequisites

* A [Bright Data account](https://brightdata.com/products/web-scraper?hs_signup=1\&utm_source=docs). New accounts get **5,000 free credits every month**, no credit card required
* One of:
  * cURL
  * Python 3.9+ with the Bright Data Python SDK: `pip install brightdata-sdk`
  * Node.js 20+ with the Bright Data JavaScript SDK: `npm install @brightdata/sdk`

## Scrape your first page

<Steps>
  <Step title="Get your API key">
    New accounts receive an API key in the Bright Data welcome email. Use that key for this guide.

    If you no longer have that email, open [Account settings](https://brightdata.com/cp/setting/users) and click **Add API key** to create a new one. Only admins can create API keys.

    <Warning>
      A Bright Data API key is shown once, at the moment it is created. Existing keys cannot be viewed in plain text afterwards, so copy the key and store it securely as soon as it appears. If you lost a key, create a new one rather than looking for the old one.
    </Warning>

    The same key works across every Bright Data product, so this is the only credential step in this guide.
  </Step>

  <Step title="Send a request">
    This request scrapes an Amazon product page. Replace `YOUR_API_KEY` with your API key and run it as-is.

    <ScraperQuickstartCode />

    You should see the product JSON printed. This takes 10 to 30 seconds.
  </Step>

  <Step title="Read the response">
    The Bright Data Scraper API returns a JSON array with structured product data. The Python SDK exposes it as `result.data`; the JavaScript SDK returns the array directly:

    ```json theme={null}
    [
      {
        "title": "Apple AirPods Pro 3 Wireless Earbuds with Active Noise Cancellation",
        "asin": "B0FQFB8FMG",
        "brand": "Apple",
        "initial_price": 249,
        "final_price": 199.99,
        "currency": "USD",
        "rating": 4.4,
        "reviews_count": 14302,
        "seller_name": "Amazon.com",
        "availability": "In Stock",
        "image_url": "https://m.media-amazon.com/images/I/61solmQSSlL._AC_SL1500_.jpg",
        "url": "https://www.amazon.com/dp/B0FQFB8FMG"
      }
    ]
    ```

    The full record carries 64 fields, including variants, delivery, buybox prices and customer review topics. See the [full response schema](/api-reference/scrapers/e-commerce-apis/amazon-products-collect-by-url).
  </Step>
</Steps>

You now have a working Bright Data integration.

## How do I scrape a different site?

Over HTTP, every scraper has its own `dataset_id`: change that value and the input URL, and keep the rest of the request identical. In the SDKs, call the matching method instead.

| Site      | `dataset_id` for cURL   | Python SDK method           | Quickstart                                           |
| :-------- | :---------------------- | :-------------------------- | :--------------------------------------------------- |
| Amazon    | `gd_l7q7dkf244hwjntr0`  | `scrape.amazon.products`    | [Amazon](/products/scrapers/amazon/quickstart)       |
| LinkedIn  | `gd_l1viktl72bvl7bjuj0` | `scrape.linkedin.profiles`  | [LinkedIn](/products/scrapers/linkedin/quickstart)   |
| Instagram | `gd_l1vikfch901nx3by4`  | `scrape.instagram.profiles` | [Instagram](/products/scrapers/instagram/quickstart) |
| TikTok    | `gd_l1villgoiiidt09ci`  | `scrape.tiktok.profiles`    | [TikTok](/products/scrapers/tiktok/quickstart)       |
| YouTube   | `gd_lk538t2k2p1k3oos71` | `scrape.youtube.videos`     | [YouTube](/products/scrapers/youtube/quickstart)     |
| Google    | `gd_m8ebnr0q2qlklc02fz` | `search.google`             | [Google](/products/scrapers/google/quickstart)       |

The JavaScript SDK uses the same tree with `collect`-prefixed names, for example `scrape.amazon.collectProducts`. Full method lists: [Python SDK](/api-reference/SDK), [JavaScript SDK](/api-reference/SDK-JS).

Bright Data maintains thousands of pre-built scrapers covering popular sites. Browse the full library in the [Scrapers overview](/products/scrapers/overview), and see [async requests](/products/scrapers/scrapers-library/async-requests) for the complete dataset ID table.

## What if no pre-built scraper covers my site?

Build one with Bright Data Scraper Studio. Pass a target URL and one sentence describing the data you want, and the AI Agent generates the output schema and writes the scraper code. Generation typically takes 5 to 15 minutes, and up to 25 minutes for complex targets.

The [Scraper Studio quickstart](/products/scraper-studio/quickstart) walks through the whole path, from `bdata scraper create` to triggering the published scraper from your own code. Prefer no code? Build the same scraper from your dashboard with the [AI Agent](/products/scraper-studio/ai-agent).

## How do I scale past one URL?

The request above is synchronous: one call, one response, up to 20 URLs. For production volumes, switch to the asynchronous `/trigger` endpoint, which has no URL ceiling other than 1 GB of input per job and returns a `snapshot_id` instead of records.

Rather than polling for that `snapshot_id`, have Bright Data push results to a webhook, Amazon S3, Google Cloud Storage, Azure or Snowflake when the job completes. See [async requests](/products/scrapers/scrapers-library/async-requests) for the full trigger, poll and download workflow, and [delivery options](/products/scrapers/scrapers-library/delivery-options) for the destinations.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Which should I use, Scraper API or Scraper Studio?">
    Use the Scraper API when a pre-built scraper already covers your target site, which is the case for most popular sites. Use Scraper Studio when none does, or when you want to own the scraper logic. Both return the same structured output and run on the same infrastructure. For the full comparison, see [Choose a product](/product-selector).
  </Accordion>

  <Accordion title="Why did I get a 401 or 403?">
    A `401` means the API key was rejected: the response body names which case. A `403` is different, the key is valid but lacks permission for that product or zone. See the [authentication guide](/api-reference/authentication).
  </Accordion>

  <Accordion title="My request timed out. What happened?">
    Synchronous requests have a 1-minute timeout. If a request exceeds it, the Bright Data Scraper API automatically switches to async and returns a `snapshot_id` instead of records. Use that ID with the [async workflow](/products/scrapers/scrapers-library/async-requests).
  </Accordion>

  <Accordion title="Can I get CSV instead of JSON?">
    Yes. Set the `format` query parameter to `csv` or `ndjson`. The default is `json`.
  </Accordion>

  <Accordion title="Does this cost credits?">
    Yes, and new accounts get 5,000 free credits every month with no credit card, drawn from a single shared pool across eligible products. See the [free tier](/general/account/billing-and-pricing/free-tier).
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={3}>
  <Card title="For your coding agent" icon="robot" href="/quickstart-coding-agent">
    Set up Claude Code, Cursor or Codex with skills, the MCP server and llms.txt.
  </Card>

  <Card title="Choose a product" icon="compass" href="/product-selector">
    Scraping search engines, unlocking pages or running a browser? Match your goal to the right product.
  </Card>

  <Card title="Scale to production" icon="layer-group" href="/products/scrapers/scrapers-library/async-requests">
    Batch unlimited URLs, monitor snapshots and deliver results to your warehouse.
  </Card>
</CardGroup>
