Facebook Marketplace Scraper + Seller Ratings & Alerts avatar

Facebook Marketplace Scraper + Seller Ratings & Alerts

Pricing

from $1.50 / 1,000 listings

Go to Apify Store
Facebook Marketplace Scraper + Seller Ratings & Alerts

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

Carina Hatton

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Security

Limited permissions

Share

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 cookiesRuns logged out over residential proxies, so your Facebook account is never at risk.
Seller infoName 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 detailsDescription, all photos (with sizes), condition, attributes, category, coordinates, listing status, and shipping.
Location that worksAccepts "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.
FiltersPrice range, radius, condition, date listed (24h/7d/30d), local pickup or shipping, and sort order. Facebook applies these on its side.
Strict filteringFacebook 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 modeSeen 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.
PaginationUses Facebook's own pagination to go past the first page, up to your maxItems or maxPagesPerSearch.
ReliabilityUses 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)

  1. Set monitoringMode: true, sortBy: "creation_time_descend", and a monitoringKey such as "dallas-bikes".
  2. Schedule the Actor (for example, every 30 minutes) in Schedules.
  3. 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

FieldDescription
searchQueriesKeywords. Each one is a separate search.
startUrlsMarketplace search, category, or item URLs. Filters in the URL are kept.
location / latitude + longitudeThe search center.
radius, radiusUnitSearch radius in miles (the default unit) or km.
minPrice, maxPricePrice range in whole currency units.
conditionsAny of new, used_like_new, used_good, used_fair.
daysSinceListedany, 1, 7, or 30.
deliveryMethodall, local_pickup, or shipping.
sortBybest_match, creation_time_descend, price_ascend, price_descend, or distance_ascend.
maxItems, maxPagesPerSearchLimits per search.
includeDetailsOpen each listing to get the full description, photos, and seller ratings (default true).
strictFiltering, includeSold, excludeKeywords, requireKeywordsInTitleClean-up options for the results.
monitoringMode, monitoringStoreName, monitoringKey, emitPriceChanges, monitoringRetentionDaysMonitoring settings.
proxyConfigurationProxy 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 getPrice
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.