Facebook Marketplace Scraper + Seller Ratings & Alerts
Pricing
from $1.50 / 1,000 listings
Facebook Marketplace Scraper + Seller Ratings & Alerts
Scrape Facebook Marketplace without login: full description, all photos, condition, location and seller name, join date and rating. Search any city, ZIP or coordinates with price, radius, condition and date filters. Monitoring mode returns only new and price-changed listings.
Pricing
from $1.50 / 1,000 listings
Rating
0.0
(0)
Developer
Carina Hatton
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
Facebook Marketplace Scraper: listings, seller ratings, and new-listing alerts (no login)
Scrape Facebook Marketplace search results and listing pages without logging in or providing cookies. Each listing includes its full description, all photos, condition, category, approximate coordinates, distance from your search center, and seller details: name, ID, profile photo, join date, and rating. Search by keyword around any US city, ZIP code, or exact coordinates, filter by price, radius, condition, date listed, and delivery method, and turn on monitoring mode to get only the listings that are new or changed price since your last run.
What you can use it for
- Resellers and flippers: get alerts for underpriced items minutes after they're posted.
- Price research: compare local asking prices by condition, location, and date.
- Car dealers and buyers: vehicle listings include any vehicle fields Facebook exposes.
- Lead generation and market research: see which sellers are active, how long they've been on Facebook, and their ratings.
Features
| No login or cookies | Runs logged out over residential proxies, so your Facebook account is never at risk. |
| Seller info | Name and ID for every listing. With details turned on, you also get profile photo, join date, seller rating average and count, and business and verified flags. |
| Full details | Description, all photos (with sizes), condition, attributes, category, coordinates, listing status, and shipping. |
| Location that works | Accepts "City, ST", a ZIP code, or latitude/longitude, which are converted to exact coordinates. Facebook location slugs from URLs (dallas, nyc) also work. Radius can be in miles or km. |
| Filters | Price range, radius, condition, date listed (24h/7d/30d), local pickup or shipping, and sort order. Facebook applies these on its side. |
| Strict filtering | Facebook mixes in out-of-range items. The Actor drops results outside your price, radius, or condition, and sold or pending items. You can also add exclude keywords. |
| Monitoring mode | Seen listing IDs are kept in a named key-value store, so each scheduled run returns only NEW listings, plus PRICE_CHANGED listings with previousPrice. Already-seen listings are skipped before detail pages are opened, so you don't pay for them again. |
| Pagination | Uses Facebook's own pagination to go past the first page, up to your maxItems or maxPagesPerSearch. |
| Reliability | Uses a sticky residential session per search and rotates to a new IP and fresh cookies on any block. Retries use exponential backoff, and errors explain what to change. |
Quick start
{"searchQueries": ["mountain bike"],"location": "Dallas, TX","radius": 25,"minPrice": 50,"maxPrice": 400,"sortBy": "creation_time_descend","maxItems": 50,"includeDetails": true}
Monitoring (new listings only)
- Set
monitoringMode: true,sortBy: "creation_time_descend", and amonitoringKeysuch as"dallas-bikes". - Schedule the Actor (for example, every 30 minutes) in Schedules.
- Add an integration (Slack, email, a webhook, Make, or Zapier) on Run succeeded. On the first run, every listing is new and becomes the baseline. After that, you only receive new listings and listings whose price changed.
Seen IDs are stored in the key-value store monitoringStoreName (default fb-marketplace-monitor) under the key SEEN-<monitoringKey>. To reset a watch, delete that record. Listings that haven't appeared for monitoringRetentionDays are forgotten.
Input
| Field | Description |
|---|---|
searchQueries | Keywords. Each one is a separate search. |
startUrls | Marketplace search, category, or item URLs. Filters in the URL are kept. |
location / latitude + longitude | The search center. |
radius, radiusUnit | Search radius in miles (the default unit) or km. |
minPrice, maxPrice | Price range in whole currency units. |
conditions | Any of new, used_like_new, used_good, used_fair. |
daysSinceListed | any, 1, 7, or 30. |
deliveryMethod | all, local_pickup, or shipping. |
sortBy | best_match, creation_time_descend, price_ascend, price_descend, or distance_ascend. |
maxItems, maxPagesPerSearch | Limits per search. |
includeDetails | Open each listing to get the full description, photos, and seller ratings (default true). |
strictFiltering, includeSold, excludeKeywords, requireKeywordsInTitle | Clean-up options for the results. |
monitoringMode, monitoringStoreName, monitoringKey, emitPriceChanges, monitoringRetentionDays | Monitoring settings. |
proxyConfiguration | Proxy settings. Residential US is the default and is recommended. |
Output example
{"id": "1234567890123456","url": "https://www.facebook.com/marketplace/item/1234567890123456/","title": "26\" Schwinn mountain bike","price": 60, "priceFormatted": "$60", "currency": "USD","condition": "Used - Good", "conditionCode": "used_good","description": "21-speed. Good working condition. Pickup only.","photos": [{ "url": "https://scontent.example.fbcdn.net/photo.jpg", "width": 960, "height": 720 }],"photoCount": 5,"locationText": "Example City, TX", "latitude": 33.1, "longitude": -96.8, "distanceKm": 21.5,"createdAt": "2026-10-30T18:15:37.000Z","categoryName": "Bicycles","deliveryTypes": ["IN_PERSON"],"seller": {"id": "pfbid0EXAMPLE", "name": "Jane Doe","joinedAt": "2015-05-01T00:00:00.000Z","ratingAverage": 4.8, "ratingCount": 48,"isBusiness": false, "isVerified": false},"monitoringStatus": "NEW", "previousPrice": null,"detailsScraped": true}
The dataset has an Overview table (photo, title, price, condition, location, distance, date, seller, rating) and a Sellers view. The RUN-STATS record in the default key-value store shows requests, retries, pages, and counts of filtered and skipped listings.
Pricing
This Actor is pay-per-event, so you only pay for listings you get:
| What you get | Price |
|---|---|
| Each listing (title, price, location, photo, status, seller name and ID) | $1.50 per 1,000 |
Add-on when includeDetails is on (description, all photos, condition, coordinates, seller join date and rating) | $3.50 per 1,000 |
| Detailed listing total | $5.00 per 1,000 |
In monitoring mode, listings you've already seen aren't charged again. Set Maximum cost per run and the Actor stops cleanly when it reaches the limit.
Tips and limits
- Facebook shows a limited number of results per search. For big areas, split the search by price bands or by several nearby locations.
- With
includeDetails: false, you pay $1.50 per 1,000 instead of $5.00 and still get title, price, city, photo, date, and seller name and ID. distanceKm, the radius check, and condition checks need details, because search cards don't include coordinates or condition.- Seller contact details (phone, email) are not public, so they're not included.
- Use the data responsibly and in line with Facebook's terms and local privacy laws. Seller names and photos are personal data, so only process them if you have a legitimate reason.
FAQ
Do I need a Facebook account? No. Cookies are optional, and we don't recommend providing them.
Why did a run return 0 results in monitoring mode? Nothing new was posted since the last run. The status message says so.
Can I scrape a list of item URLs? Yes. Put the item URLs in startUrls.