Wix Marketplace Professionals Metadata Scraper
Pricing
from $5.00 / 1,000 results
Wix Marketplace Professionals Metadata Scraper
Extract public Wix Marketplace professional listing metadata from public listing pages. No login, no contact scraping, no detail-page crawling.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
LogFabric
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Extracts public listing-card metadata from Wix Marketplace's "Hire a
Professional" pages (https://ja.wix.com/marketplace/hire). It reads only
what is already visible on the public listing pages — no login, no
detail-page visits, no contact data.
What this Actor does
- Reads public Wix Marketplace listing pages under
https://ja.wix.com/marketplace/hire(and its?page=Npagination). - Parses provider/listing cards using Cheerio (static HTML parsing only).
- Extracts listing-card metadata: name, partner ID, a constructed profile URL (when safely derivable), location, rating, review count, starting price, short description, and profile image URL.
- Writes results to the default dataset and a
RUN_SUMMARYobject to the default key-value store on every run.
What this Actor does NOT do
- This Actor is not a contact scraper. It does not extract emails, phone numbers, contact form URLs, social links, or external website URLs.
- It does not visit provider detail pages in v0 — only the listing pages themselves are read.
- It does not use login, cookies, sessions, a proxy, browser automation (no Playwright/Puppeteer), or any CAPTCHA bypass.
- It does not crawl any site other than the Wix Marketplace listing pages described above.
- It does not download profile images — only the image URL, if present, is recorded.
Input
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 20 | Maximum number of listing records to extract (1–100). |
startPage | integer | 1 | First Wix Marketplace listing page to read (1–42). |
maxPages | integer | 3 | Maximum number of listing pages to read (1–42). |
debug | boolean | false | Enables verbose debug logging. |
Output fields
Each dataset item contains:
professionalNamepartnerIdprofileUrl— constructed only when a partner ID or profile path can be safely derived from the listing page source; otherwisenull.locationratingreviewCountstartingPriceshortDescriptionprofileImageUrlsourceUrlpagefoundretrievedAt
Missing optional fields are set to null. Values are never invented.
Output limits and cost control
To protect against runaway usage and negative-profit runs on Pay-Per-Result pricing, the Actor computes:
effectiveMaxItems = min(input.maxItems, ACTOR_MAX_PAID_DATASET_ITEMS, 100)
ACTOR_MAX_PAID_DATASET_ITEMSis read from the platform environment when present; otherwise it is ignored.100is an internal hard cap that always applies.- The Actor stops pushing dataset records once
effectiveMaxItemsis reached, and stops requesting further listing pages once the cap is hit — it never crawls pages unnecessarily after the output limit has been reached. startPage/maxPagesare always respected, and the Actor never reads past listing page 42.
RUN_SUMMARY v1
Every run writes a RUN_SUMMARY object (key: RUN_SUMMARY) to the
default key-value store with the following schema:
{"version": "RUN_SUMMARY v1","totalItems": number,"requestedMaxItems": number,"effectiveMaxItems": number,"actorMaxPaidDatasetItems": number | null,"skippedDueToLimit": number,"errorCount": number,"warningCount": number,"warnings": string[],"sourceUrl": string,"startPage": number,"maxPages": number,"lastPageAttempted": number,"requestsFinished": number,"requestsFailed": number,"cardsSeen": number,"recordsMatched": number,"recordsSkipped": number,"retrievedAt": string}
Notes on severity
- Reaching
maxItems(i.e.effectiveMaxItems) is not an error — it is reflected inskippedDueToLimit. - Fewer results than requested is not automatically an error; the source listing may simply have fewer matching cards.
- A missing
professionalNamecauses that card to be skipped (counted inrecordsSkipped) rather than failing the run. - If a
profileUrlcannot be safely constructed, the record is kept withprofileUrl: nulland a single run-level warning is added (not one warning per affected record).
Limitations
- Relies on the current public HTML structure of the Wix Marketplace
listing pages (
data-hook="provider-container",provider-box-<uuid>,partner-business-name-<uuid>, and similar patterns). If Wix changes this structure, parsing may need updates. - Only listing-card data is extracted; no per-provider detail-page enrichment is performed in v0.
- Some optional fields (location, rating, review count, starting price,
short description, profile image) may be
nullif not present or not reliably parseable on a given card.
Development status
v0 — initial implementation. Static Cheerio-based parsing only. Not yet published.