Facebook Marketplace Scraper - Listings, Prices & Price Drops
Pricing
from $0.40 / 1,000 listing scrapeds
Facebook Marketplace Scraper - Listings, Prices & Price Drops
Scrape Facebook Marketplace listings by keyword + city, category or URL: price, original price, location, photos, category, date listed, sold status. Add-on: description, all photos, condition, coordinates, vehicle and property data. Monitor mode returns only new listings and price drops. No login.
Pricing
from $0.40 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Top Api
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What does Facebook Marketplace Scraper do?
Facebook Marketplace Scraper extracts Facebook Marketplace listings from facebook.com/marketplace by keyword and city, by category, or by listing URL. Each listing becomes one row with title, price, original price, location, photo, category and listing date. Resellers, dealers, property managers and researchers use it to price items and catch new listings without scrolling Marketplace.
Also known as: FB Marketplace scraper, Facebook Marketplace API, Marketplace listings extractor, Marketplace price tracker.
- Every listing in a search: title, price, original price, city, photo, category, date listed, sold/pending, delivery options.
- Search the way Marketplace does: keyword, city or postal code, radius, 18 categories, price, condition, date listed and sort, all sent to Facebook itself.
- Listing details add-on: description, every photo, condition, coordinates and distance, vehicle data (year, make, model, mileage, transmission) and property data (beds, baths, street).
- Price-drop monitor: scheduled runs return only new listings and price drops, with
previousPriceandpriceDelta. - No login, cookies or Facebook API key: you give a keyword and a place.
- Pay only for delivered rows: no start fee.
- Export anywhere: JSON, CSV, Excel; schedules, webhooks, Make, Zapier, n8n, Google Sheets, the Apify API and MCP.
What data can you get from Facebook Marketplace?
| ๐ Listing id and URL (`listingUrl`) | ๐ Title | ๐ฒ Price and currency |
| ๐ท๏ธ Original price and discount % | ๐ City, state, `locationText` | ๐ Date listed (`listedAt`) |
| ๐ผ๏ธ Primary photo (`photoUrl`) | ๐๏ธ Category (`categoryName`) | โ Sold / pending flags |
| ๐ Delivery options | ๐ Full description โ | ๐ธ Every photo โ |
| โญ Condition and attributes โ | ๐ Latitude, longitude, distance โ | ๐ Vehicle: year, make, model, mileage โ |
| ๐ Property: beds, baths, street โ | ๐ Price drop: `previousPrice`, `priceDelta` | ๐ Search keyword and location |
โ = with Include listing details on. On a 25-listing live run ("desk" near Austin, details on) every row had a title, price, currency, city, photo, category, listing date, condition, coordinates and distance; 92% had a description, 40% an original price, and listings had 1 to 8 photos (3.4 on average).
How to scrape Facebook Marketplace with Facebook Marketplace Scraper
- Create a free Apify account: $5 of monthly credit, no card needed.
- Open Facebook Marketplace Scraper and click Try for free.
- Type what you want into Search keywords (e.g.
bike) and a place into Location (e.g.Austin, TX). - Set Max listings per search, and turn on Include listing details if you need descriptions, all photos or vehicle data.
- Click Start. Rows stream into the dataset as they are found.
- Open the Storage tab and Export as JSON, CSV or Excel, or let a schedule run it for you.
โฌ๏ธ Input
| Parameter | Type | Description |
|---|---|---|
| ๐ What to scrape | ||
searchQueries | List | Keywords, one per line, e.g. bike, iphone 15, honda civic. Prefill: bike. |
location | String | City, City, State, postal code or lat,lng; several places separated by ;. Default: New York, NY. |
radiusKm | Integer | Search radius (1-500 km). Facebook's own filter; exact with listing details. |
categories | Select (multi) | 18 Marketplace categories (Vehicles, Property Rentals, Home Sales, Electronics, Free Stuff and more). Without keywords each is browsed. |
listingUrls | List | Listing URLs or ids, or Marketplace search/category URLs copied from your browser. |
| ๐ฏ Filters (applied by Facebook) | ||
minPrice, maxPrice | Integer | Price window in the local currency. maxPrice: 0 = free items. |
condition | Select (multi) | New, Used - like new, Used - good, Used - fair. Default: any. |
sortBy | Select | Best match (default), newest first, price low/high, distance. |
daysSinceListed | Select | Any time (default), last 24 hours, 7 days, 30 days. |
| โ๏ธ Refine results | ||
mustContainQuery | Boolean | Keep only listings whose title contains every word of the keyword. Default: false. |
excludeKeywords | String | Drop listings whose title (or description, with details) contains any of these words. |
| โ Extra data | ||
includeListingDetails | Boolean | Description, all photos, condition, coordinates, vehicle and property data, charged as Listing details per row that gets it. Default: false. |
| ๐ Monitoring | ||
monitorMode | Boolean | Return only listings not delivered by previous runs, plus price drops. Pair with a schedule. |
monitorStoreName | String | Name of the store that remembers delivered listings. Default: facebook-marketplace-monitor. |
| ๐ฆ Output | ||
maxResultsPerQuery | Integer | Cap per keyword x category x location. Default 100, prefill 24, 0 = up to 5,000. |
maxItems | Integer | Cap for the whole run. 0 = no total cap. |
compact | Boolean | Core fields only, sized for AI agents and MCP. |
| โ๏ธ Advanced | ||
proxyConfiguration | Proxy | Default: Apify RESIDENTIAL (US). Other choices fall back to it automatically. |
Input JSON
{"searchQueries": ["desk", "office chair"],"location": "Austin, TX","maxPrice": 150,"sortBy": "newest","daysSinceListed": "7","includeListingDetails": true,"maxResultsPerQuery": 50}
Write the location as "City, State" or a postal code
Facebook's own location search resolves the place. Do: Austin, TX, Manchester, UK, 90210, 30.27,-97.74. Don't: Austin alone when you mean Texas (several towns share the name; the log prints the place used).
Paste a Marketplace search URL to keep your browser filters
Copy the address bar of a Marketplace search into listingUrls. The actor reads its city, keyword, category and filters (minPrice, maxPrice, sortBy, daysSinceListed, itemCondition); the form's filters do not override it.
Sort by newest for alerts, by distance for "near me"
newest is the order for monitoring; Facebook widens the area slightly for it. distance keeps results closest to you. Facebook treats the radius as a hint (about 65 km), so turn on listing details when it must be exact: farther rows are removed.
Turn on "Only listings that contain the keyword" for strict results
Marketplace search is fuzzy: bike also returns bike racks. With mustContainQuery every keyword word must appear in the title.
โฌ๏ธ Output
Every listing becomes one dataset item. Here is the table view of the 25-listing live run for desk near Austin, TX with listing details on:
And one row as JSON (trimmed):
{"id": "960824729657551","listingUrl": "https://www.facebook.com/marketplace/item/960824729657551/","title": "Black Desk (with drawer stand)","price": 25,"priceFormatted": "$25","currency": "USD","originalPrice": 50,"discountPct": 50,"city": "Austin","state": "TX","latitude": 30.270080566406,"longitude": -97.684936523438,"distanceKm": 6,"categoryName": "Furniture","condition": "Used - like new","listedAt": "2026-09-16T13:33:48.000Z","photoCount": 5,"description": "Black desk with drawers\n\n48 inches wide\n22 inches deep\n30 inches tall","isSold": false,"deliveryTypes": ["IN_PERSON", "DOOR_PICKUP"],"searchQuery": "desk","searchLocation": "Austin, Texas","detailsFetched": true}
Rows also keep Facebook's own field names (marketplace_listing_title, listing_price, primary_listing_photo, location, redacted_description, listing_photos, vehicle_*), as other Marketplace scrapers do, so existing pipelines keep working.
Fields
| Field | Type | What it is | Fill on test run |
|---|---|---|---|
id, listingUrl, title | string | Listing id, link, title | 100% |
price, priceFormatted, currency | number, string | Price as a number, as shown, ISO currency | 100% |
originalPrice, discountPct | number | Struck-through price and markdown % | 40% (only marked-down items) |
city, state, locationText | string | Where the item is | 100% |
photoUrl | string (URL) | Primary photo | 100% |
categoryName, categoryId | string | Marketplace category | 100% |
listedAt, listedHoursAgo | ISO date, number | When it was posted | 100% |
isSold, isPending, deliveryTypes | boolean, array | Status and delivery options | 100% |
description โ | string | Full description | 92% |
photoUrls, photoCount โ | array, integer | Every photo | 100% |
condition, attributes โ | string, array | Condition and listing attributes | 100% |
latitude, longitude, distanceKm โ | number | Coordinates and distance from the search point | 100% |
vehicle โ | object | year, make, model, mileage, transmission, exterior colour, seller type 100%; trim 92%; fuel 88%; MPG 68%; owners 56%; title status 40% | vehicles (25-car run) |
property โ | object | Property type, beds, baths, street, walk/transit scores | rentals and home sales |
changeType, previousPrice, priceDelta | string, number | Monitor mode: NEW or PRICE_DROP | monitor runs |
How can I use Facebook Marketplace data?
- ๐ธ Resellers and flippers: an alert when an item is listed under your price, or a seller cuts the price.
- ๐ Car dealers and buyers: private-party cars with year, make, model, mileage and asking price for trade-in pricing.
- ๐ Property managers and renters: rentals and homes for sale with beds, baths, street and price.
- ๐ Market researchers and brands: second-hand prices, supply and discounting across cities.
- ๐ค AI and data teams:
compactrows for an LLM or MCP agent ("a used road bike under $300 near Denver").
How much does it cost to scrape Facebook Marketplace?
Facebook Marketplace Scraper is pay-per-result: $0.40 per 1,000 listings, no start fee. Listing details are $0.80 per 1,000 listings that receive them.
| Listings | Cost | With listing details |
|---|---|---|
| 10 | $0.004 | $0.012 |
| 100 | $0.04 | $0.12 |
| 1,000 | $0.40 | $1.20 |
| 10,000 | $4.00 | $12.00 |
Measured on the platform: 24 listings in 5-13 seconds, 100 listings in 15 seconds, 25 listings with details in 22 seconds, all on 256 MB with a peak of 42-52 MB.
Facebook Marketplace in your tools: integrations, API, scheduling & MCP
- Schedules: run it hourly or daily from the Schedules tab with
monitorModeandsortBy: newestto receive only new listings and price drops. - Webhooks: fire a URL when a run finishes and push the new listings to Slack, a CRM or a sheet.
- No-code: Make, Zapier, n8n, Google Sheets, Airtable, Slack via Apify integrations.
- API: call it from Node.js or Python with
apify-client; code is on the API tab and in the Apify API reference. - MCP / AI agents: connect Claude, Cursor or any MCP client through the MCP tab and ask for Marketplace listings in plain language; set
compact: trueto keep rows small.
More scrapers by TopApi
| ๐ฐ Facebook Search Posts Scraper - public Facebook posts by keyword, date and place | ๐ธ Instagram Scraper - posts, reels and profiles without login | ๐ต TikTok Scraper - videos, hashtags and profiles |
| ๐ฌ TikTok Video Scraper - one row per video URL | ๐ฆ Twitter Profile Scraper - X followers, bio and verified badge | ๐ผ Indeed Jobs Scraper - job listings by keyword and location |
| ๐ Similarweb Scraper - website traffic and rankings | ๐ Google Maps Reviews Scraper - reviews, ratings and owner replies | ๐ All TopApi actors - scrapers built for schedules, APIs and AI agents |
Limits & empty runs
- Listings per search: 24 per request; one search paged to 734 unique listings with no duplicates. Cap up to 5,000 per search.
- No seller name or profile: Facebook does not show the seller to signed-out visitors (empty on every listing tested); scrapers that return it ask for your cookies.
- Dealer contacts and vehicle feature lists appeared on none of 121 vehicle listings tested (all private sellers); they are added only when Facebook shows them.
- Radius: visitors get about 65 km whatever the radius; the exact radius applies with listing details on.
- Currency comes from the listing (details) or the price symbol plus the listing's state; empty when ambiguous.
- Postal code only for vehicles and property. The few eBay items inside Marketplace are flagged
isPartnerListing, with the eBay seller inpartner. - Photo links are signed Facebook URLs that expire after some days.
- Empty dataset: no listings match, the place was not found (the log says so), or monitor mode found nothing new.
FAQ
How many listings can Facebook Marketplace Scraper collect in one run?
As many as you allow: each keyword x category x location is one search with its own cap (maxResultsPerQuery, up to 5,000), and maxItems caps the whole run. One search paged to 734 listings in testing. For more, split by city, category or price range.
Can I run Facebook Marketplace Scraper on a schedule to get new listings automatically?
Yes. Save your input as a task, turn on monitorMode, set sortBy to newest and add a schedule. Each run returns only listings not delivered before and listings whose price dropped; a run with nothing new delivers nothing.
How does Facebook Marketplace Scraper detect price drops?
It remembers the price of every listing it delivered (in the store named by monitorStoreName). When a known listing reappears cheaper, the row comes back with changeType: PRICE_DROP, previousPrice and priceDelta.
Can I integrate Facebook Marketplace Scraper with other apps?
Yes: Make, Zapier, n8n, Google Sheets, Slack and more via Apify integrations, or webhooks that fire when a run finishes.
Can I use Facebook Marketplace Scraper with the Apify API?
Yes. Start runs, read datasets and manage schedules with apify-client for Node.js or Python; the API tab has ready-to-paste code.
Can I use Facebook Marketplace Scraper through an MCP server?
Yes. Open the MCP tab, connect your MCP client (Claude Desktop, Cursor and others) and ask for Marketplace listings in plain language. compact: true keeps each row to the core fields.
Do I need a Facebook account, cookies or an API key for Facebook Marketplace Scraper?
No. The actor reads what Marketplace shows any visitor; you give a keyword, a place or a URL and nothing else. It uses Apify's residential proxy by default because Facebook sends datacenter IPs to its login page.
Can Facebook Marketplace Scraper scrape cars and rentals?
Yes. Pick the Vehicles, Property Rentals or Home Sales category (with or without a keyword) and turn on listing details for year, make, model, mileage and transmission, or beds, baths, street and walk score.
Why did my Facebook Marketplace Scraper run return no results?
Usually the filters are too narrow (price window, condition, last 24 hours), the location was not found (write City, State), or monitor mode found nothing new since the last run. The status message and the RUN_SUMMARY record say which.
How is Facebook Marketplace Scraper different from other Marketplace scrapers?
It keeps the field names of the largest Marketplace scrapers and adds flat fields (price as a number, currency, discount %, distance, listing age), a price-drop monitor, exact radius, vehicle and property blocks, and keyword filters, at $0.40 per 1,000 listings with no start fee.
Is it legal to scrape Facebook Marketplace?
Facebook Marketplace Scraper extracts only publicly available listing data and does not log in. Results can still contain personal data, which laws such as the GDPR protect, so make sure you have a legitimate reason before you use it.
Your feedback
We keep improving Facebook Marketplace Scraper. Found a bug or missing a field? Open an issue on the Issues tab and we will get back to you.

