# Boohoo (`datasaurus/boohoo`) Actor

Scrape products from Boohoo.com. Fast and Efficient.

- **URL**: https://apify.com/datasaurus/boohoo.md
- **Developed by:** [datasaurus](https://apify.com/datasaurus) (community)
- **Categories:** E-commerce
- **Stats:** 8 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 product-pages

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/actors/running/actors-in-store.md#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

## Boohoo Scraper

Scrapes products from [Boohoo.com](https://www.boohoo.com/) including full product detail.

### Features

- **Listing scraper**
- **Product detail scraper**: for full product data
- **Colour variants**: Colour, SKU, price, was-price, stock status, images, swatch
- **Size variants**: Size, SKU, stock status, available quantity
- **Full product info**: Description, care instructions, breadcrumb, category taxonomy, occasion, sleeve length, badges

#### Supported URL Types

| URL Pattern | Behaviour |
|-------------|-----------|
| `https://www.boohoo.com/` | Main site — samples 5 popular categories |
| `https://www.boohoo.com/categories/womens-dresses` | Category — Bloomreach keyword search |
| `https://www.boohoo.com/brands/boohoo` | Brand — Bloomreach keyword search |
| `https://www.boohoo.com/product/{slug}_{pid}.html` | Direct product — scrapes page immediately |
| `https://www.boohoo.com/product/{slug}_{pid}` | Direct product (no .html) |

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `start_urls` | Array | required | URLs to scrape (see URL types below) |
| `max_products` | Integer | 48 | Max products per start URL |
| `max_products_per_category` | Integer | `max_products` | Products per category when scraping the main site |
| `scrape_product_page` | Boolean | false | Enrich listings with full product page data |

### Output Fields

| Field | Description |
|-------|-------------|
| `name` | Product name |
| `brand` | Brand name |
| `sku` | Master variant SKU |
| `pid` | Product ID |
| `price` | Current price (GBP) |
| `rrp` | Was price / RRP (only when discounted) |
| `currency` | Always `GBP` |
| `link` | Product page URL |
| `imageUrl` | Main product image URL |
| `description` | Plain text description |
| `breadcrumb` | Navigation breadcrumb array |
| `category` | Product category names |
| `categoryTaxonomy` | Primary taxonomy (e.g. `Dresses`) |
| `styleTaxonomy` | Style taxonomy (e.g. `Blazer Dress`) |
| `department` | Department (e.g. `Clothing`) |
| `occasion` | Occasion tags |
| `sleeveLength` | Sleeve length |
| `careInstructions` | Materials and care instructions |
| `colourVariants` | Array of colour variant objects |
| `sizes` | Array of size objects with stock levels |
| `badges` | Product badges (e.g. `Next Day Delivery`) |

### Example Input

```json
{
    "start_urls": [
        {
            "url": "https://www.boohoo.com/categories/womens-tops"
        }
    ]
    "scrape_product_page": true,
    "max_products": 4,
}
```

### Example Output

```json
{
  "name": "The Mid Waist Wide Leg Jean",
  "brand": "boohoo",
  "sku": "HZZ42001-9873-1162",
  "pid": "HZZ42001",
  "price": 18.75,
  "rrp": 25.0,
  "currency": "GBP",
  "imageUrl": "https://mediahub.boohoo.com/hzz42001_vintage%20bleach_xl",
  "description": "• Crafted from pure cotton denim for breathable comfort throughout the day\n\n• Mid-waist design offers flattering coverage whilst maintaining modern appeal\n\n• Dramatic wide leg silhouette creates a statement look with flowing movement\n\n• Classic five-pocket styling with traditional denim detailing\n\n• Versatile length that works beautifully with both flats and heels\n\nMake a bold fashion statement with these striking wide leg jeans that combine retro influence with contemporary styling. The generous cut through the leg creates a dramatic silhouette that moves beautifully with every step, whilst the mid-rise waist ensures a comfortable fit that sits perfectly on your natural waistline. Style with a fitted crop top as shown for a balanced proportion that highlights the waist, or tuck in an oversized shirt for casual weekend brunches. These jeans transition effortlessly from day to night - pair with trainers and a casual jumper for family gatherings, or dress up with block heels and a bodysuit for evening drinks. The timeless denim construction ensures these will become a wardrobe staple that works across all seasons.",
  "breadcrumb": [
    "home",
    "Womens",
    "Womens Clothing",
    "Jeans",
    "Mid Rise Jeans",
    "The Mid Waist Wide Leg Jean"
  ],
  "category": [
    "Denim",
    "Boohoo Jeans",
    "Womens",
    "Womens Clothing",
    "Jeans",
    "Bottoms",
    "Casual Wear",
    "Teen Girl Outfits"
  ],
  "categoryTaxonomy": "Jeans",
  "styleTaxonomy": "Wide Leg Jeans",
  "department": "Clothing",
  "occasion": [
    "Casual"
  ],
  "careInstructions": "100% Cotton Machine wash at 30°C, do not bleach, do not tumble dry, iron at medium temperature, do not dry clean, wash dark colors separately Model wears: Size 10",
  "colourVariants": [
    {
      "colour": "Vintage Bleach",
      "colourCode": "vintage bleach",
      "sku": "HZZ42001-9873-1162",
      "price": 18.75,
      "inStock": true,
      "wasPrice": 25.0,
      "images": [
        "https://mediahub.boohoo.com/hzz42001_vintage%20bleach_xl",
        "https://mediahub.boohoo.com/hzz42001_vintage%20bleach_xl_1",
        "https://mediahub.boohoo.com/hzz42001_vintage%20bleach_xl_2",
        "https://mediahub.boohoo.com/hzz42001_vintage%20bleach_xl_3"
      ],
      "swatchImage": "https://mediahub.boohoo.com/hzz42001_vintage%20bleach_xl_s"
    }
  ],
  "sizes": [
    {
      "size": "6/30L",
      "sku": "HZZ42001-9873-1162",
      "inStock": false,
      "availableQuantity": 0
    },
    {
      "size": "8/30L",
      "sku": "HZZ42001-9873-1163",
      "inStock": false,
      "availableQuantity": 0
    },
    {
      "size": "10/30L",
      "sku": "HZZ42001-9873-1164",
      "inStock": false,
      "availableQuantity": 0
    },
    {
      "size": "14/32L",
      "sku": "HZZ42001-9873-1172",
      "inStock": true,
      "availableQuantity": 4
    },
    {
      "size": "16/32L",
      "sku": "HZZ42001-9873-1173",
      "inStock": true,
      "availableQuantity": 16
    }
  ],
  "badges": [
    "Next Day Delivery"
  ],
  "link": "https://www.boohoo.com/product/boohoo-the-mid-waist-wide-leg-jean_hzz42001"
}
```

### Pricing (Pay-Per-Event)

This Actor uses pay-per-event billing. You are only charged for what you actually scrape.

| Event | Price | When charged |
|---|---|---|
| `product-listing` | $0.002 | Each product discovered from a category/brand listing (no page scraping) |
| `product-page` | $0.005 | Each product enriched with full detail from the product page (colour variants, sizes, care) |

When `scrape_product_page` is `false`, only `product-listing` is charged. When `true`, `product-page` is charged instead.

# Actor input Schema

## `start_urls` (type: `array`):

URLs to scrape from Boohoo.com.
Main site: https://www.boohoo.com/
Category: https://www.boohoo.com/categories/womens-dresses
Brand: https://www.boohoo.com/brands/boohoo
Product: https://www.boohoo.com/product/boohoo-chunky-knit-cropped-cardigan\_gzz32006.html

## `scrape_product_page` (type: `boolean`):

Fetch the individual product detail page for every product. Adds full variant data, sizes, care instructions and more to each output item.

## `max_products_per_category` (type: `integer`):

Maximum number of products to scrape per category when scraping the whole site. Use lower numbers for testing. Leave empty to fetch all products.

## `max_products` (type: `integer`):

Maximum number of products to scrape per start URL. Use lower numbers for testing. Leave empty to fetch all products.

## Actor input object example

```json
{
  "start_urls": [
    {
      "url": "https://www.boohoo.com/categories/womens-dresses"
    },
    {
      "url": "https://www.boohoo.com/categories/womens-tops"
    }
  ],
  "scrape_product_page": true,
  "max_products": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "start_urls": [
        {
            "url": "https://www.boohoo.com/categories/womens-dresses"
        },
        {
            "url": "https://www.boohoo.com/categories/womens-tops"
        }
    ],
    "max_products": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("datasaurus/boohoo").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 = {
    "start_urls": [
        { "url": "https://www.boohoo.com/categories/womens-dresses" },
        { "url": "https://www.boohoo.com/categories/womens-tops" },
    ],
    "max_products": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("datasaurus/boohoo").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "start_urls": [
    {
      "url": "https://www.boohoo.com/categories/womens-dresses"
    },
    {
      "url": "https://www.boohoo.com/categories/womens-tops"
    }
  ],
  "max_products": 10
}' |
apify call datasaurus/boohoo --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datasaurus/boohoo"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/11uURY4UxFH11TySG/builds/gmwXzFPzwjBxCBU7g/openapi.json
