BROWSER USE

- Browser Use Agents: give Browser Use a task and receive completed work. API V4 is current for new integrations.
- Browser Infrastructure: connect your agent or automation to managed browsers through SDK, REST, or CDP. Starts at $0.02/browser-hour.
- Developer tools: Open Source, Browser Harness, SDK, and MCP support the two products above.

[Developer Index](https://browser-use.com/index.md)
[Product Map](https://browser-use.com/llms.txt)
[Full Product Context](https://browser-use.com/llms-full.txt)
[Pricing](https://browser-use.com/pricing.md)
[Cloud Docs](https://docs.browser-use.com/cloud/quickstart)
[Open Source Docs](https://docs.browser-use.com/open-source/introduction)

---

# AI web scraper for dynamic websites.

> Describe the data and get structured JSON. Browser Use controls a real browser to navigate websites, interact with pages and extract your data. Scrape public pages, sites behind a login and bot-protected sites.

[HTML page](https://browser-use.com/web-scraping) · [Start scraping](https://cloud.browser-use.com) · [API quickstart](https://docs.browser-use.com/cloud/agent/quickstart)

## Python

Save this example as `scrape_jobs.py` and replace `https://jobs.example.com` with your job portal URL. It filters for remote engineering jobs, opens up to five matching listings and extracts their titles, locations and URLs:

```python
from browser_use_sdk.v4 import BrowserUse
from pydantic import BaseModel

class Job(BaseModel):
    title: str
    locations: list[str]
    url: str

class Jobs(BaseModel):
    jobs: list[Job]

with BrowserUse() as client:
    run = client.runs.create(
        "Open https://jobs.example.com. "
        "Filter for remote engineering jobs. "
        "Open up to 5 matching listings and extract "
        "each title, all locations and the job URL.",
        output_schema=Jobs.model_json_schema(),
    )
    done = client.runs.wait_for_completion(run.id)
    if done.status.value != "completed":
        raise RuntimeError(done.error or done.status.value)
    results = Jobs.model_validate(done.output)
    print(results.model_dump_json(indent=2))
```

## TypeScript

Save this example as `scrape_jobs.ts`. Use Zod 4 and replace `https://jobs.example.com` with your job portal URL:

```typescript
import { BrowserUse } from "browser-use-sdk/v4";
import { z } from "zod";

const Jobs = z.object({
  jobs: z.array(z.object({
    title: z.string(),
    locations: z.array(z.string()),
    url: z.string(),
  })),
});

const client = new BrowserUse();
const run = await client.runs.create({
  task: "Open https://jobs.example.com. " +
    "Filter for remote engineering jobs. " +
    "Open up to 5 matching listings and extract " +
    "each title, all locations and the job URL.",
  outputSchema: z.toJSONSchema(Jobs),
});
const done = await client.runs.waitForCompletion(run.id);
if (done.status !== "completed") {
  throw new Error(done.error ?? done.status);
}
const results = Jobs.parse(done.output);
console.log(JSON.stringify(results, null, 2));
```

## Output

Sample data matching the schema above (`output.json`):

```json
{
  "jobs": [
    {
      "title": "Senior Backend Engineer",
      "locations": ["Remote, Europe"],
      "url": "https://jobs.example.com/backend"
    },
    {
      "title": "Frontend Engineer",
      "locations": ["Remote, US", "Remote, Canada"],
      "url": "https://jobs.example.com/frontend"
    },
    {
      "title": "Platform Engineer",
      "locations": ["Remote, Worldwide"],
      "url": "https://jobs.example.com/platform"
    }
  ]
}
```

- **Plain language:** describe what you need in natural language
- **Real browser:** supports JavaScript and [profile syncing](https://docs.browser-use.com/cloud/guides/profile-sync)
- **Structured data:** provide the schema, get structured JSON

## How AI web scraping works

1. **Describe the extraction:** Give the agent a starting URL, the fields you want and a stopping point. Add the filters to apply or the pages to visit.
2. **Let the browser reach the data:** The agent reads the page and takes the steps your task calls for, including clicks, scrolling and navigation. Watch the run in the live browser.
3. **Get structured JSON:** For API runs, pass an [output schema](https://docs.browser-use.com/cloud/agent/structured-output) and read the parsed JSON when the run completes.

## What you can scrape

- **Job positions:** Collect job titles, companies, locations and application links from career pages and job boards.
- **Lead generation:** Extract company names, websites and public contact details from business directories.
- **Price monitoring:** Track product prices, availability and discounts across online stores.
- **SERP monitoring:** Collect search result positions, titles and URLs for the keywords you track.
- **Real estate data:** Extract property prices, locations and listing details from real estate portals.

## Pay only for what you use

Cloud agent runs bill model tokens, browser time at $0.02 per hour, and network traffic. The total depends on the pages, interactions and model. See [current pricing](https://browser-use.com/pricing) for token and traffic rates. Already have a scraping script? Connect it to a [remote browser for Playwright](https://browser-use.com/playwright).

## Tired of flaky selectors and fixing scripts?

[Try Browser Use](https://cloud.browser-use.com/signup)

## Questions people ask

### What is an AI web scraper?

An AI web scraper uses a model to interpret web pages and extract the information you describe. Browser Use controls a real browser to apply filters, open pages and reach the data. You describe what to extract and provide a schema for the JSON result.

### How does traditional scraping compare to AI web scraping?

Traditional scrapers use selectors and scripted steps to find and extract data. AI web scrapers use a model to interpret your instructions and decide what to extract and how to reach it. Both can handle interactive websites. AI reduces the navigation and extraction logic you write; a traditional scraper can be faster and cheaper for stable, repetitive tasks.

### Can I scrape bot-protected sites?

Browser Use Cloud includes a custom Chromium build and residential proxies to reduce blocking. Access is not guaranteed: results depend on the site and its bot protections. Learn more about our [stealth browsers](https://browser-use.com/stealth-browsers).

### Does it support web scraping behind a login?

Yes. Sync your browser profile to reuse your login cookies, then ask Browser Use to extract data from pages your account can access. The saved session works while the site's login remains valid.

### Do I need to write code?

No. Describe your task in the Browser Use Cloud dashboard to run an extraction without code. For your own application or workflow, use the API with an output schema to get structured JSON.

[Web scraping guide](https://browser-use.com/posts/web-scraping-guide-2026) · [Data extraction examples](https://browser-use.com/showcase/category/data-extraction) · [Web agent API](https://browser-use.com/web-agent-api) · [CAPTCHA solving](https://browser-use.com/captcha-solving)
