Faire Scraper | Products, Brands & Categories
Pricing
from $2.20 / 1,000 results
Faire Scraper | Products, Brands & Categories
Extract guest-visible Faire products, brands, categories, retail prices and reviews for your selected market. Pay per delivered row plus a start fee; export JSON, CSV or Excel.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
2
Monthly active users
11 hours ago
Last modified
Categories
Security
Limited permissionsShare
Faire Scraper
Extract guest-visible Faire products, brands and categories for your selected market as rows you can export.
- Product names, identifiers, images, minimum quantities and available retail or tester prices.
- Brand catalogs, supplier-directory entries and category paths.
- Optional purchase-option and product-review rows.
- Multiple Faire URLs in one run.
- $3.00 per 1,000 rows on the Free plan, plus a start fee.
What does Faire Scraper do?
Faire Scraper collects public catalog information from Faire.com for assortment research, brand discovery and price comparisons. It does not sign in as a retailer or return retailer-only wholesale prices. This is an independent tool, not affiliated with Faire.
- Category: products under
categoryPath. - Discover: products for
discoverSlugorkeyword. - Brand: a brand's catalog using
brandToken. - Product: details for
productToken. - Categories: category-tree rows with
mode: "categories". - Suppliers: brand-directory rows with
mode: "suppliers". - Optional rows:
expandVariants,includeReviewsandincludeRelatedare off by default. Each added row is billed at the same rate and counts toward the row limit.
country selects the market; the default is USA. The input form lists 31 accepted market codes, including GBR, CAN, AUS and DEU. An accepted code does not guarantee that every product is available there. locale defaults to en; use English search terms.
What data can you extract from Faire?
Each row represents one entity. Fields depend on the row type and what Faire exposes. The examples below illustrate field formats, not verified current offers.
Fields shared across row types
| Field | Description | Example |
|---|---|---|
rowType | Entity type: product, variant, review, brand or category | product |
id | Entity identifier within its row type | p_example |
url | Faire page link, when available | https://www.faire.com/product/p_example |
contentDepth | Coverage label, not a promise of wholesale access | guest_full |
Product rows
| Field | Description | Example |
|---|---|---|
productToken | Faire product identifier | p_example |
name | Product display name | Example ceramic planter |
brandToken | Brand identifier | b_example |
minOrderQuantity | Minimum product order quantity | 6 |
optionCount | Number of available purchase options, when fetched | 2 |
optionPriceMin | Lowest option retail price in major currency units | 18.5 |
optionPriceMax | Highest option retail price in major currency units | 24 |
optionPriceCurrency | Currency for the option price range | USD |
images | Available product image objects | [] |
Variant rows
| Field | Description | Example |
|---|---|---|
optionToken | Purchase-option identifier | po_example |
productToken | Parent product identifier | p_example |
displayName | Option name | Blue |
retailPriceCents | Retail price in minor currency units | 1850 |
Review rows
| Field | Description | Example |
|---|---|---|
reviewToken | Source review identifier, when supplied | pr_example |
rating | Numeric review rating | 5 |
comment | Review text | Example review text |
Brand rows
| Field | Description | Example |
|---|---|---|
brandToken | Faire brand identifier | b_example |
name | Brand display name | Example Homewares |
minimumOrderAmount | Minimum order amount and currency | {"amountCents": 10000, "currency": "USD"} |
averageRating | Brand's reported average rating | 4.8 |
activeProductsCount | Reported active product count | 24 |
Category rows
| Field | Description | Example |
|---|---|---|
categoryPath | Slash-separated category path | Home Decor/Kitchen & Tabletop |
name | Category label | Kitchen & Tabletop |
treeLevel | Source category-tree depth | 2 |
locale | Category language | en |
How to scrape Faire
- Open Faire Scraper in Apify Console.
- Fill one target field, such as
keywordorstartUrls. - Leave
modeonautoand setmaxResultsto3for a small first run. - Click Start and wait for completion.
- Open the dataset and download the rows, or read them through the API.
Empty input starts the Home Decor example from the form, limited to 3 rows. This example is billed normally, including the start fee. Filling one target field selects the mode automatically. The untouched example URL is ignored when you supply another target or choose a mode explicitly.
Category
Fill categoryPath, for example Pets. A plain phrase is matched to a category, or searched when no category matches.
Discover
Fill keyword or discoverSlug, for example candles. Search phrases are lowercased and spaces become hyphens. Unrelated suggestions are not guaranteed to produce usable rows.
Brand
Fill brandToken from a Faire brand URL. Results can contain brand information and products from that brand's catalog.
Product
Fill productToken from a Faire product URL. Enable optional rows only if you need them; they share the product's row allowance.
Categories
Choose mode: "categories" without a target. Use topLevelOnly for top-level categories, or crawlSubcategories to prefer deeper paths.
Suppliers
Choose mode: "suppliers". Without a URL, the Actor uses Faire's All Brands directory. You can supply a suppliers-page URL instead.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | auto, category, discover, brand, product, categories or suppliers | auto |
startUrls | Faire category, discover, brand, product or suppliers links | Home Decor example in the form |
categoryPath | Category name or path | Empty |
discoverSlug | Search phrase or discover slug | Empty |
keyword | Search phrase when discoverSlug is empty | Empty |
brandToken | Brand ID beginning with b_ | Empty |
productToken | Product ID beginning with p_ | Empty |
maxResults | Maximum rows per URL or selected target, 1–5,000 | 70; form example 3 |
country | Market code from the form | USA |
locale | Language hint | en |
enrichDetails | Add available details to listing rows | true |
enrichLimit | Detail limit; 0 uses the smaller of the row allowance and 80 | 0 |
expandVariants | Separate purchase-option rows | false |
includeReviews | Separate product-review rows; needs details outside product mode | false |
includeRelated | Available related products in product mode | false |
sortBy | Requested category sort, such as new | Empty |
filterKeys | Category filter keys from Faire's filter panel | Empty |
brandFilters | Filter value from a brand-page URL | Empty |
page | Listing start page, 1–500 | 1 |
pageSize | Requested listing page size, 1–120 | 60 |
maxPages | Requested listing-page limit; not a delivered-row cap | 10 |
autoPaginate | Pagination preference; see limitations | true |
crawlSubcategories | Prefer deeper category paths | false |
topLevelOnly | Return only top-level categories | false |
Category:
{"categoryPath": "Pets", "maxResults": 3}
Discover:
{"keyword": "candles", "country": "GBR", "maxResults": 3}
Brand:
{"brandToken": "b_8yruuuqrma", "maxResults": 3}
Product:
{"productToken": "p_vafjzd5w6a", "expandVariants": true, "maxResults": 3}
Categories:
{"mode": "categories", "topLevelOnly": true, "maxResults": 3}
Suppliers:
{"mode": "suppliers", "maxResults": 3}
Multiple URLs:
{"startUrls": ["https://www.faire.com/category/Pets","https://www.faire.com/discover/candles"],"maxResults": 3}
maxItemsandlimitare accepted asmaxResults;queryandqare accepted asdiscoverSlug.- With
mode: "auto", target priority isstartUrls,productToken,brandToken,categoryPath, thendiscoverSlugorkeyword. Each URL identifies its own target. - Unknown fields do not fail the run. Close misspellings are corrected where possible; other unknown fields are ignored with a note. Invalid market values are ignored, leaving the default market.
- Invalid targets stop collection with a field-and-fix message, such as
INVALID_INPUT: startUrls — use faire.com links. No rows are charged; the start fee still applies. INPUT_REPORTin the default key-value store records input interpretation, corrections and ignored fields.INPUT_ECHOshows normalized settings;RUN_SUMMARYrecords delivered counts and warnings. Failures can also writeERROR_SUMMARY.
Output example
Illustrative product row; actual fields and values depend on the source:
{"rowType": "product","id": "p_example","productToken": "p_example","brandToken": "b_example","name": "Example ceramic planter","title": "Example ceramic planter","url": "https://www.faire.com/product/p_example","contentDepth": "guest_full","minOrderQuantity": 6,"optionCount": 2,"optionPriceMin": 18.5,"optionPriceMax": 24,"optionPriceCurrency": "USD","source": "faire.com"}
You can export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. Product rows hold option counts and price ranges rather than embedded option and review lists. Optional rows carry the parent productToken for joining them back to products.
Why use this Faire scraper?
- Row-based billing. The row charge applies to delivered rows, not attempted pages; a separate start fee applies.
- Partial delivery. Available partial results can be delivered with warnings. Rows already written remain in the dataset; forcing a stop before delivery can leave no rows.
- Inspectable input. Check
INPUT_REPORTrather than guessing which target was selected. - Source-dependent fields. Missing prices or reviews are not replaced with invented values.
- Multiple inputs. Collect several Faire URLs in one run.
- No proxy setup. You do not need to set up proxies or provide a Faire retailer login.
How much does it cost to scrape Faire?
The Actor uses pay-per-event pricing: $0.005 per start event, plus a charge per delivered row. Start events scale with memory at one event per GB, with a minimum of one. At the default 512 MB, one start event costs $0.005. Platform usage is included in these prices.
| Apify plan | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.003 | $3.00 |
| Starter | $0.003 | $3.00 |
| Scale | $0.0026 | $2.60 |
| Business | $0.0022 | $2.20 |
maxResultsapplies to each URL or selected target. The default is 70; larger requests are collected in parts of 70.- Products, variants, reviews, related products, brands and categories all count toward the allowance. Three rows need not mean three products.
- Free Apify accounts are limited to 200 rows per run and 10 runs of this Actor. These are developer-set limits.
- Maximum cost per run (
maxTotalChargeUsdin the API) limits the whole run's spend, including the start fee, and can reduce the rows delivered.
Example: two distinct URLs delivering 3 rows each produce 6 billable rows. With one start at 512 MB on the Free plan: 6 × $0.003 + $0.005 = $0.023. Fewer available rows means a lower row charge.
What happens when the run timeout is too short
When more time is needed and automatic continuation is accepted, the run pauses with the message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It temporarily appears as ABORTED. When results are ready, the same run resumes, delivers rows to the same dataset and finishes as SUCCEEDED. Delivery can report "Resumed: delivering N rows." Already-delivered rows are skipped rather than charged twice.
This can happen at most 3 times per run. Keep the default timeout of 3600 seconds to reduce interruptions. Automatic continuation does not turn collection errors or a manual abort into guaranteed success.
The synchronous API endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and can return an empty dataset while the run is paused. For longer jobs, start asynchronously and read the dataset after SUCCEEDED, or use a webhook for that event.
Use with AI agents and the API
Apify MCP server (Claude, ChatGPT, Cursor, VS Code)
Add this Actor to an MCP client with remote-server support:
https://mcp.apify.com?tools=lentic_clockss/faire-scraper
Sign in through Apify OAuth when prompted, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns its run and dataset IDs; the agent can then read rows with get-dataset-items.
Clients without remote support can use npx @apify/actors-mcp-server --tools lentic_clockss/faire-scraper with APIFY_TOKEN set.
Example prompt: "Find up to 3 Faire rows for candles in the United Kingdom using keyword candles, country GBR and maxResults 3."
Apify API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/faire-scraper").call(run_input={"keyword": "candles", "maxResults": 3})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/faire-scraper').call({keyword: 'candles', maxResults: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For HTTP, send the JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~faire-scraper/runs with an Authorization: Bearer <YOUR_APIFY_TOKEN> header. Read results with GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json after the run succeeds.
Integrations
Use the Integrations tab to connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Use Apify Schedules for recurring runs.
FAQ
Is it legal to scrape Faire?
Public availability is not permission for every use. You are responsible for checking Faire's terms and applicable data-protection law. Processing personal data requires a lawful basis.
Why did my run end as ABORTED?
Check the status message. Automatic continuation temporarily uses this status before the same run resumes. A manual abort or another failure is different; see the timeout section.
How many results can I get?
Request 1–5,000 rows per input with maxResults. Availability, optional rows, free-plan limits and the maximum run cost can reduce delivery. Empty input requests only the 3-row example.
Why are some fields empty?
Faire does not expose every field to guests. Listing rows can be sparse when details are unavailable or enrichDetails is off. Missing option counts mean unknown, not zero.
Do I get wholesale login prices?
No. Available retail or tester prices are not retailer-only wholesale price tiers. A guest_full label means fuller guest detail, not authenticated access.
Can I use URLs instead of tokens?
Yes. Put Faire category, discover, brand, product or suppliers links in startUrls. Faire subdomain links are normalized to www.faire.com where needed.
Why are related products or reviews missing?
Their switches are off by default. Even when enabled, Faire may expose none, or the row allowance may be used by earlier rows. Reviews outside product mode require enrichDetails.
What does a partial result mean?
Some usable rows were collected but other pages or details were unavailable. Check RUN_SUMMARY warnings. Try fewer rows or a longer timeout when the run stopped early.
Limitations
- Guest-visible catalog data only; no private accounts, retailer-only prices or guaranteed contact information.
- Market selection does not guarantee stock, shipping eligibility or complete catalog coverage.
maxPagesandautoPaginateare not strict delivery limits: row-based collection may continue paging to fillmaxResults.- Sort and filter effects depend on the source. Pagination can end before the requested row count.
- No automatic translation of search terms is promised.
- Collection failures can produce no rows. A manually stopped run may end before any dataset delivery.
Related scrapers
More e-commerce and marketplace scrapers from the same publisher:
- Walmart Product Scraper
- Temu Product Scraper
- Allegro Scraper
- TikTok Shop Product Scraper
- Amazon Search, Category & Best Sellers Scraper
- Coupang Product Scraper
- MercadoLibre Scraper
- Rakuten Japan Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used.