# Fashionphile Scraper (`anyxsolutions/fashionphile-scraper`) Actor

Scrapes pre-owned luxury listings and product pages from Fashionphile, returning brand, product name, condition, price, discount, images, and full item descriptions.

- **URL**: https://apify.com/anyxsolutions/fashionphile-scraper.md
- **Developed by:** [Anyx Solutions](https://apify.com/anyxsolutions) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.49 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

![banner](generated)

## Fashionphile Scraper

**Pre-owned luxury handbags, watches, and jewelry from Fashionphile — brands, conditions, prices, and discounts as clean JSON.**

Scrapes pre-owned luxury listings and product pages from Fashionphile, returning brand, product name,
condition, price, discount, images, and full item descriptions. Point it at a category, sale, or
search page to sweep a whole listing with pagination handled for you, or at individual product pages
for the complete record — description, every photo, variant pricing, and stock details. Useful for
resale price tracking, luxury market research, and building comparison or inventory feeds.

### ⚡ Quick start

```json
{
  "startUrls": [
    { "url": "https://www.fashionphile.com/collections/discounted-all" }
  ],
  "maxItems": 5
}
```

### 🧩 Input

| Field                | Type    | Required | Default                      | Description                                                                               |
| -------------------- | ------- | -------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
| `startUrls`          | array   | yes      | —                            | Fashionphile URLs to scrape. Category, sale, search, and product pages are all supported. |
| `maxItems`           | integer | no       | `5`                          | Maximum results per start URL. Listing pages stop paginating once the budget is spent.    |
| `proxyConfiguration` | object  | no       | `{ "useApifyProxy": false }` | Proxy settings. Not needed for this Actor.                                                |

### 📤 Output

Every result is one dataset row. The `itemType` field tells the two shapes apart: `search` for a row
collected from a category, sale, or search page, and `product` for a full record collected from a
product page. Listing rows are compact and comparable; product rows carry the complete item.

#### Fields

| Field              | Type   | Description                                                                  |
| ------------------ | ------ | ---------------------------------------------------------------------------- |
| `itemType`         | string | `search` or `product`.                                                       |
| `id`               | number | Fashionphile item identifier, stable across both shapes.                     |
| `url`              | string | Public product page URL.                                                     |
| `brand_name`       | string | Brand, e.g. `Chanel` (listing rows).                                         |
| `product_name`     | string | Item name without the brand (listing rows).                                  |
| `condition`        | string | Graded condition, e.g. `Excellent`, `Shows Wear` (listing rows).             |
| `price`            | number | Current asking price in USD (listing rows).                                  |
| `discounted_price` | number | Amount taken off the original price, `0` when not discounted (listing rows). |
| `title`            | string | Item name without the brand (product rows).                                  |
| `vendor`           | string | Brand (product rows).                                                        |
| `body_html`        | string | Full item description, including materials and hardware.                     |
| `product_type`     | string | Category, e.g. `Bags`, `Watches`, `Jewelry`.                                 |
| `handle`           | string | URL slug of the item.                                                        |
| `tags`             | string | Merchandising tags as published.                                             |
| `template_suffix`  | string | Storefront template variant, usually empty.                                  |
| `published_scope`  | string | Where the item is published, e.g. `global`.                                  |
| `created_at`       | string | When the item was first listed, ISO 8601.                                    |
| `updated_at`       | string | When the listing last changed, ISO 8601.                                     |
| `published_at`     | string | When the item went on sale, ISO 8601.                                        |
| `variants`         | array  | Purchasable variants with price, compare-at price, SKU, and stock.           |
| `options`          | array  | Variant option names and their values.                                       |
| `images`           | array  | Every photo, with dimensions and CDN URL.                                    |
| `image`            | object | Primary photo.                                                               |

<details><summary>Example output</summary>

```json
[
  {
    "itemType": "search",
    "id": 16107618402607,
    "brand_name": "Chanel",
    "product_name": "Tweed Calfskin Quilted Medium Gabrielle Hobo Black White",
    "condition": "Shows Wear",
    "price": 1735,
    "discounted_price": 90,
    "url": "https://www.fashionphile.com/p/chanel-tweed-calfskin-quilted-medium-gabrielle-hobo-black-white-1942993"
  },
  {
    "itemType": "product",
    "id": 10648212373807,
    "title": "Monogram Multicolor Lodge GM Black",
    "vendor": "Louis Vuitton",
    "product_type": "Bags",
    "handle": "louis-vuitton-monogram-multicolor-lodge-gm-black-1242632",
    "body_html": "This is an authentic LOUIS VUITTON Monogram Multicolor Lodge GM in Black.",
    "tags": "",
    "template_suffix": null,
    "published_scope": "global",
    "created_at": "2025-06-14T23:36:45-07:00",
    "updated_at": "2026-08-26T13:52:24-07:00",
    "published_at": "2025-06-14T23:36:47-07:00",
    "variants": [
      {
        "id": 51507420660015,
        "title": "Default Title",
        "price": "880.00",
        "compare_at_price": "1465.00",
        "sku": "3103"
      }
    ],
    "options": [
      { "id": 13155872604463, "name": "Title", "values": ["Default Title"] }
    ],
    "images": [
      {
        "id": 52223362466095,
        "width": 1500,
        "height": 1500,
        "src": "https://cdn.shopify.com/s/files/1/0894/3186/7695/files/2fa5ea726595741748138b9608803a7d.jpg"
      }
    ],
    "image": {
      "id": 52223362466095,
      "width": 1500,
      "height": 1500,
      "src": "https://cdn.shopify.com/s/files/1/0894/3186/7695/files/2fa5ea726595741748138b9608803a7d.jpg"
    },
    "url": "https://www.fashionphile.com/p/louis-vuitton-monogram-multicolor-lodge-gm-black-1242632"
  }
]
```

</details>

### 💡 Use cases

- **Resale price tracking** — follow asking prices and markdowns on a brand or model over time and spot when inventory is repriced.
- **Luxury market research** — size the second-hand market by brand, category, and condition grade using whole-category sweeps.
- **Comparison shopping feeds** — build a resale price index and match it against retail or other marketplaces.
- **Inventory and sourcing** — watch a sale collection for items that clear a target discount and route them to buyers.
- **Authentication and cataloguing** — collect descriptions, materials, hardware notes, and every photo for reference libraries.

### ❓ FAQ

- **Do I need a proxy?** No. Fashionphile serves both listings and product records without one, so proxies are off by default.
- **Which URLs can I use?** Category and sale pages such as `/collections/discounted-all`, search pages such as `/search?q=chanel`, and product pages such as `/p/<item-slug>`.
- **How do I scrape a whole category?** Raise `maxItems`; the Actor pages through the listing until the budget is spent or results run out.
- **Why do listing rows and product rows have different fields?** Listing rows carry the comparable columns a grid shows; product rows carry the full record. Use `itemType` to tell them apart.
- **What is `discounted_price`?** The amount taken off the original price, not the sale price itself. A row priced at `1735` with `discounted_price` `90` was originally `1825`.

### 🔗 More scrapers by Anyx

- [Google Play Store Scraper](https://apify.com/anyxsolutions/google-play-scraper)
- [Yellow Pages Scraper](https://apify.com/anyxsolutions/yellowpages-scraper)
- [Kleinanzeigen Scraper](https://apify.com/anyxsolutions/kleinanzeigen-scraper)
- [Indeed Scraper](https://apify.com/anyxsolutions/indeed-scraper)

### 🤝 Anyx Solutions

We build custom scrapers and data-extraction pipelines.

- Email: tantosthor@gmail.com

### 🖼 Image credit

Image credit: [fashionphile.com](https://www.fashionphile.com/)

# Actor input Schema

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

Fashionphile URLs to scrape. Category and sale pages such as https://www.fashionphile.com/collections/discounted-all, search pages such as /search?q=chanel, and product pages such as /p/chanel-caviar-quilted-mini-clutch-black-1234567 are all supported.

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

Maximum number of results to return per start URL. Listing pages stop paginating once this many rows have been collected.

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

Apify proxy settings. Fashionphile serves both listings and product records without a proxy, so proxies are disabled by default.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.fashionphile.com/collections/discounted-all"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://www.fashionphile.com/collections/discounted-all"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("anyxsolutions/fashionphile-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.fashionphile.com/collections/discounted-all" }] }

# Run the Actor and wait for it to finish
run = client.actor("anyxsolutions/fashionphile-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.fashionphile.com/collections/discounted-all"
    }
  ]
}' |
apify call anyxsolutions/fashionphile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anyxsolutions/fashionphile-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/3Whrrk0cE4hqMPDUj/builds/xXOEh43cdmECKqGXn/openapi.json
