# Level Shoes Product Scraper | Prices, Stock & Images (`eggcenter/levelshoes-product-scraper`) Actor

Collect product data from Level Shoes, the UAE luxury fashion store: names, brands, prices in AED, discounts, sizes, stock status and images. Export to CSV, Excel, JSON or API.

- **URL**: https://apify.com/eggcenter/levelshoes-product-scraper.md
- **Developed by:** [Egg Center](https://apify.com/eggcenter) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 output addeds

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Level Shoes Product Scraper

This actor collects product data from Level Shoes (levelshoes.com), the Dubai-based
luxury fashion and footwear store serving the UAE. For every product you get the
name, brand, current price in AED, discount percentage when the store reports one,
stock status, photos, category and section (women, men, kids), badge labels like
NEW or EXCLUSIVE, and a marker for pre-loved pieces. Results arrive as a table you
can download as CSV, Excel or JSON, or read through the Apify API.

Prices and availability come from the UAE store (www.levelshoes.com), so every row
is in UAE dirham.

### How it works

1. Paste one or more links from levelshoes.com. The home page collects the whole
   women's catalog — its shoes, bags, accessories and beauty sections. A category
   link collects just that section — women/shoes, women/sale, women/new-in,
   men/sneakers, kids/shoes, a brand page like women/brands/gucci, or the pre-loved
   section. A search results page link collects that search: open the website,
   search for something, and paste the address of the results page (it looks like
   levelshoes.com/search?term=sneakers). The site serves its top 100 results per
   search — that is the full depth its search offers.
2. Optionally set a maximum number of results per run. Leave it at 0 for no limit.
3. Start the actor. Products appear in the results as they are collected, and the
   same product never appears twice in one run even if two of your links overlap
   (sale items and their home category, for example).

### What you pay

You only pay for what the actor actually does:

| What | Price | In plain words |
| --- | --- | --- |
| Starting the actor | $0.00005 | A tiny fixed amount each time you run it. |
| Pages visited | $0.0002 | A small amount for every listing page the actor opens. |
| Results saved | $0.004 | The main cost — only for products that actually land in your results. |

**Example:** a run that saves 1,000 products visits about 10 listing pages (the
site serves 100 products per page) and costs about **$4.00**.

You can set a maximum spend per run, and the actor stops safely when it is reached.

### What you get

Each result contains:

| Field | What it is |
| --- | --- |
| productName, brand | Name and designer as the store shows them |
| salePrice, originalPrice, discountPercent, currency | Current AED price, the listing's reference price, and the discount the store reports |
| inStock, nonPurchasable, notifyMeAllowed | Whether the store lists it as buyable, and what it offers if not |
| productUrl | The product's own page, one row per product |
| color, vpn, styleCode, productGroupId | The version identifiers the store uses |
| mainImageUrl, mainImageWidth, mainImageHeight, imageGalleryPreview | The listing's photos |
| gender, categoryPath | Where the product sits: Women/Men/Kids/Unisex and its category chain (Shoes | Pumps | Slingbacks) |
| badges, productType, dropInfo, ageGroupLabel | Labels like NEW, the pre-loved marker, release-window info |
| crawledDate, websiteName, countryCode | When the row was collected and from which store |

A few honest limits: prices are from the UAE store only — other country mirrors
(us.levelshoes.com and similar) are not covered. Individual product links are not
collected; paste a category link or a search results page instead. A search page
yields the site's top 100 results for that search, which is all the website's
search serves. Size-by-size availability is not included — the listings report
whole-product stock, not per size.

### Common questions

**How much does it cost to scrape Level Shoes?**
About $4.00 per 1,000 products. The site serves 100 products per page, so a
10,000-product run costs roughly $40 and finishes in minutes.

**Can I export the results?**
Yes. Everything lands in a dataset you can download as JSON, CSV or Excel, or
read through the Apify API while the run is still going.

**Does it get current prices and discounts?**
Yes — every row carries the selling price in AED at collection time plus the
discount percentage the store reports on the listing, so you can track price
changes between runs.

**Can I collect the results of a website search?**
Yes — search on levelshoes.com the way you normally would, then paste the
results page's address (it looks like levelshoes.com/search?term=sneakers).
You get the top 100 results the site serves for that search.

**Can I collect only pre-loved items?**
Yes. Paste the pre-loved section link; pre-loved rows are marked
preloved-consignment so you can tell them apart.

**Does it work with women's, men's and kids' products?**
All three. Paste the matching category links — women/shoes, men/sneakers,
kids/shoes, or a bare section link like levelshoes.com/men.

### Need help?

If something works differently than described here, open an issue on the Issues
tab of this actor's Apify Store page.

# Actor input Schema

## `startUrls` (type: `array`):

Links from levelshoes.com where collecting starts. Paste the home page to collect the women's catalog the storefront fronts, a category/listing link to collect just that section — women/shoes, women/sale, men/sneakers, kids/shoes, women/brands/gucci, pre-loved — or a search results page link to collect that search (the site serves its top 100 results per search). Results are always from the UAE store in AED.

## `maxItems` (type: `integer`):

Stop after this many items in total (0 = no limit).

## `proxyConfiguration` (type: `object`):

Apify Proxy settings. Uses the datacenter group unless residential is explicitly selected.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.levelshoes.com/women/shoes"
    }
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All collected products, one product per row, with prices in AED from the UAE store. Broken or unsupported input links appear as clearly marked error rows and never stop the run.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.levelshoes.com/women/shoes"
        }
    ],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("eggcenter/levelshoes-product-scraper").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 = {
    "startUrls": [{ "url": "https://www.levelshoes.com/women/shoes" }],
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("eggcenter/levelshoes-product-scraper").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 '{
  "startUrls": [
    {
      "url": "https://www.levelshoes.com/women/shoes"
    }
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call eggcenter/levelshoes-product-scraper --silent --output-dataset

```

## MCP server setup

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

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/Q0tR1DmjmXcKgIB9R/builds/Gm51rWeoWYf1za0Vo/openapi.json
