Facebook Marketplace Scraper
Pricing
from $0.34 / 1,000 listings
Facebook Marketplace Scraper
Scrape Facebook Marketplace listings by keyword, vehicle make, link, or listing URL in any city: title, price, location, photos, seller, posting date, plus full description, vehicle specs, and dealership contacts. No login. Export JSON, CSV, Excel.
Pricing
from $0.34 / 1,000 listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Facebook Marketplace Scraper
Facebook Marketplace Scraper collects listings from Facebook Marketplace in any city: title, price, location, photos, seller, posting date, and sold status. Search by keyword or by vehicle make, or paste Marketplace links. Turn on details to add the full description, condition, exact coordinates, seller profile, dealership phone and address, and vehicle specs such as mileage and VIN.
| Type what you want and where, for example "sectional sofa" in Toronto or Honda in Houston, and get up to 1,000 listings per search with price filters, date filters, 11 sort orders, a search area of up to 500 km, and a monitoring mode that saves only new listings. No Facebook login, cookies, or API key needed. |
| ParseBird Facebook Suite Β Β β’Β Β Pages, posts, groups, reviews, ads & media | ||
|
Facebook User Posts Scraper Posts from profiles and Pages |
Facebook Page Video Downloader Every video on a Page, MP4 links |
Facebook Media Downloader HD/SD links for videos, reels, photos |
|
Facebook Public Group Posts Scraper Group posts, reactions, photos |
Facebook Group Profile Scraper Group profiles, admins & rules |
Facebook Page Reviews Scraper Recommendations, tags, comments |
|
Facebook Group Posts & Comments Scraper Group posts with comments & replies |
Meta | Facebook Ads Library Scraper Ad Library ads, EU reach & payers |
Facebook Reels Play Count Scraper Exact plays for reels & videos |
|
Facebook Group Insights Scraper Group members, growth & activity |
Facebook Marketplace Scraper You are here |
Facebook Page Details Scraper Page contacts, followers & hours |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Use Apify Actor parsebird/facebook-marketplace-scraper to scrape Facebook Marketplace listings. Example with ApifyClient (Python): client.actor("parsebird/facebook-marketplace-scraper").call(run_input={"keywordSearches":[{"query":"sectional sofa","location":"Toronto"}],"maxListings":50}). Input (all optional, but give at least one of keywordSearches, vehicleSearches, startUrls, itemUrls): keywordSearches [{query, location}] (location = city name like "Austin, Texas", postal code, "lat,lng", or a Marketplace city slug like "sanfrancisco"; "locationSlug" also accepted); vehicleSearches [{make, location}] (make = "Honda", "Toyota Camry", or "all"); startUrls [{url}] facebook.com/marketplace search, category, or rentals links; itemUrls [{url}] facebook.com/marketplace/item/<id> links (always detailed); searchRadiusKm integer 0-500 default 65; minPrice, maxPrice integers in local currency; conditions array of "new","used_like_new","used_good","used_fair" (keyword searches only); dateListed "all"|"last_24_hours"|"last_7_days"|"last_30_days"; deliveryMethod "all"|"local_pick_up"|"shipping"; availability "available"|"sold"; sortBy "best_match"|"creation_time_descend"|"creation_time_ascend"|"price_ascend"|"price_descend"|"distance_ascend"|"distance_descend"|"vehicle_mileage_ascend"|"vehicle_mileage_descend"|"vehicle_year_descend"|"vehicle_year_ascend"; exactMatch boolean; vehicleMinYear, vehicleMaxYear, vehicleMinMileage, vehicleMaxMileage integers; vehicleTransmission "all"|"automatic"|"manual"; maxListings integer 1-1000 default 10 (per search); fetchDetails boolean; deduplicateListings boolean; monitoringMode boolean (save only listings new since the last run of the same search). Output: one row per listing: id, url, title, price {amount, currency, formatted}, original_price, is_free, location {city, state, full}, images [url], video_id, subtitles, creation_time {timestamp, iso}, delivery_options, seller {name, id}, is_sold, is_pending, is_live, category (ID), detailed (boolean), search (label), sourceUrl, scrapedAt. With details also: description, condition, attributes, accessibility_captions, location.latitude/longitude/postal_code, shipping_offered, shipping_price, is_hidden, category_name, category_path, hashtags, seller {name, id, profile_url, joined, rating_average, rating_count, type "dealership"|"private", dealership_name, phone, phone_international, address {street, city, region, postal_code, country}, website}, and for vehicles vehicle {make, model, trim, odometer {value, unit}, transmission, fuel_type, exterior_color, interior_color, condition, title_status, number_of_owners, is_paid_off, vin, features, mpg_city, mpg_highway, mpg_combined, horse_power, engine_size, safety_rating_overall, seller_type}. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.
What is Facebook Marketplace Scraper?
Facebook Marketplace Scraper is a Facebook Marketplace data extraction tool that searches Marketplace the way a logged-out visitor sees it and saves every listing as a clean row. Give it a keyword and a city, a vehicle make and a city, or a Marketplace link, and it returns the title, price, city, photos, seller name, posting date, and sold or pending status for each listing.
With Fetch detailed information on, each listing also gets the full description, condition, all photos, exact coordinates, the seller's profile, join date, and ratings, dealership phone, address, and website, and vehicle specs like mileage, transmission, colors, VIN, title status, and fuel economy. Facebook has no public Marketplace API, so this works as a Facebook Marketplace API alternative. To try it, open the Actor, keep the prefilled "sectional sofa in Toronto" search, and click Start.
What can Facebook Marketplace Scraper do?
- π Search by keyword in any city: one row per search, such as "iphone 15" in Chicago or "standing desk" in Austin, Texas. Use a city name, postal code, coordinates, or a Marketplace city slug.
- π Search vehicles by make or model: Honda, Mercedes-Benz, Toyota Camry, or All, with year, mileage, and transmission filters. The Actor knows 901 makes and models from Facebook's vehicle list.
- π Scrape any Marketplace link: paste a search, category, or rentals link from your browser, filters included.
- π Get full listing details: descriptions, condition, every photo, coordinates, seller ratings, and dealership contacts.
- π― Filter like the website: price range, condition, date listed, local pickup or shipping, available or sold, exact keyword match, and 11 sort orders.
- πΊοΈ Search a wider area: Facebook shows logged-out visitors listings from about 65 km around one point. Set a radius up to 500 km and the Actor searches several overlapping areas and removes duplicates.
- π Monitor for new listings: with monitoring mode on a schedule, each run saves only listings posted since the last run.
- β±οΈ Automate it: run on a schedule with Apify schedules, call it through the Apify API, or send results to Google Sheets, Slack, Make, Zapier, and more with integrations.
- π Export anywhere: JSON, CSV, Excel, HTML, or XML.
What data can you extract from Facebook Marketplace?
| Field | Description |
|---|---|
title, url, id | Listing title, link, and ID |
price | amount, currency, and Facebook's formatted price, e.g. CA$1,599 |
original_price, is_free | Crossed-out price when the seller lowered it; true for free items |
location | City, state, and full place name. Details add latitude, longitude, and postal code |
images, video_id | Photo links (the cover photo, or all photos with details) and video ID |
creation_time | When the listing was posted, as a Unix timestamp and ISO date |
seller | Seller name and ID. Details add profile link, join date, rating, dealership name, phone, address, website |
is_sold, is_pending, is_live | Sold, sale pending, and live status |
delivery_options | IN_PERSON, SHIPPING, or both |
description, condition, attributes | Full text, condition (e.g. "Used - like new"), and other item attributes (details) |
category_name, category_path | Category such as Furniture, and its path (details) |
vehicle | Make, model, trim, mileage, transmission, fuel, colors, owners, title status, VIN, MPG, horsepower (vehicle details) |
search, sourceUrl, scrapedAt | Which search found the listing, its Marketplace link, and scrape time |
Each field is filled when Facebook shows it. Private sellers often leave vehicle specs empty, and phone numbers and addresses come from dealership listings.
How to scrape Facebook Marketplace
- Open Facebook Marketplace Scraper and click Try for free.
- Under Search by keyword, enter what you're looking for and a location, e.g.
sectional sofaandToronto. Add more rows for more searches. - For cars, add rows under Search vehicles with a make such as
Hondaand a location. - Optionally set a price range, condition, date listed, sort order, or search radius.
- Set Maximum listings per search and turn on Fetch detailed information if you need descriptions, seller contacts, or vehicle specs.
- Click Start. Open the Output tab to see the Listings, Details, and Vehicles views.
- Export the data as JSON, CSV, Excel, HTML, or XML, or get it through the API.
How does the search area work?
Facebook shows logged-out visitors listings from about 65 km (40 miles) around one point, whatever radius you pick on the website. Search radius up to 65 km uses one search. A larger radius covers your area with overlapping 65 km circles: 150 km uses 7, 200 km uses 13. Results come from all circles in turn and each listing is saved once, so a larger radius gives more distinct listings but takes longer.
How do vehicle searches work?
The Actor searches Facebook's own page for the make or model, such as Marketplace's Toyota page, and keeps only vehicle listings whose title names the make. Facebook sometimes mixes other makes into filtered or sorted results; those rows are left out and not charged, and the log says how many. If the make isn't in Facebook's list, the Actor searches for the word and keeps vehicle listings.
How much does it cost to scrape Facebook Marketplace?
What is the price per Facebook Marketplace listing?
The Actor uses pay-per-event pricing with two events. Platform usage, including proxies, is included in the price.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
listing-scraped | $0.00069 ($0.69 / 1,000) | $0.00049 ($0.49 / 1,000) | $0.00039 ($0.39 / 1,000) | $0.00034 ($0.34 / 1,000) |
listing-detail-scraped | $0.00199 ($1.99 / 1,000) | $0.00169 ($1.69 / 1,000) | $0.00149 ($1.49 / 1,000) | $0.00129 ($1.29 / 1,000) |
Every saved listing is one listing-scraped event. A listing saved with full details, from a search with Fetch detailed information or from Listing links, adds one listing-detail-scraped event.
| Example | Free plan | Gold |
|---|---|---|
| Prefilled run: 10 listings | $0.0069 | $0.0034 |
| 1,000 listings | $0.69 | $0.34 |
| 1,000 listings with full details | $2.68 | $1.63 |
Vehicle rows left out because they name another make, duplicates removed by Remove duplicates across searches, and listings skipped by monitoring mode are not charged. Apify's free plan includes monthly platform credits you can use to try the Actor.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywordSearches | array of {query, location} | β | Keyword searches. location is a city, postal code, lat,lng, or Marketplace city slug |
vehicleSearches | array of {make, location} | β | Vehicle searches by make, make and model, or all |
startUrls | array of links | β | Marketplace search, category, or rentals links |
itemUrls | array of links | β | Single listings, always returned with full details |
searchRadiusKm | integer | 65 | Area around each location, 0β500 km |
minPrice, maxPrice | integer | β | Price range in the local currency |
conditions | array | β | new, used_like_new, used_good, used_fair (keyword searches) |
dateListed | string | all | last_24_hours, last_7_days, last_30_days |
deliveryMethod | string | all | local_pick_up or shipping |
availability | string | available | sold returns sold and sale-pending listings |
sortBy | string | best_match | Newest, oldest, price, distance, mileage, or vehicle year |
exactMatch | boolean | false | Match the search words more strictly |
vehicleMinYear, vehicleMaxYear | integer | β | Model year range (vehicle searches) |
vehicleMinMileage, vehicleMaxMileage | integer | β | Odometer range (vehicle searches) |
vehicleTransmission | string | all | automatic or manual (vehicle searches) |
maxListings | integer | 10 | Limit per search row and per link, up to 1,000 |
fetchDetails | boolean | false | Add descriptions, seller contacts, and vehicle specs |
deduplicateListings | boolean | false | Save each listing once across all searches |
monitoringMode | boolean | false | Save only listings new since the previous run of the same search |
Filters apply to keyword and vehicle searches. Links are scraped with the filters inside the link.
Input / Output
Example input: two keyword searches, a vehicle search over a 150 km area, and one listing link.
{"keywordSearches": [{ "query": "sectional sofa", "location": "Toronto" },{ "query": "standing desk", "location": "Austin, Texas" }],"vehicleSearches": [{ "make": "Toyota Camry", "location": "Dallas, Texas" }],"itemUrls": [{ "url": "https://www.facebook.com/marketplace/item/2501741430316811/" }],"searchRadiusKm": 150,"maxPrice": 30000,"sortBy": "creation_time_descend","maxListings": 100,"deduplicateListings": true}
Example listing (a real row; the photo link is shortened)
{"id": "1151425430657281","url": "https://www.facebook.com/marketplace/item/1151425430657281/","title": "Modern Tufted Sectional Sofa","price": { "amount": 1599.0, "currency": "CAD", "formatted": "CA$1,599" },"original_price": null,"is_free": false,"location": { "city": "Toronto", "state": "ON", "full": "Toronto, Ontario" },"images": ["https://scontent.fkul15-1.fna.fbcdn.net/v/t39.84726-6/856008507_163066..."],"video_id": null,"subtitles": [],"creation_time": { "timestamp": 1792571929, "iso": "2026-10-21T08:38:49Z" },"delivery_options": ["IN_PERSON"],"seller": { "name": "Mohammad Khalid Seddiqy", "id": "100013030781052" },"is_sold": false,"is_pending": false,"is_live": true,"category": "1583634935226685","detailed": false,"search": "sectional sofa in Toronto","sourceUrl": "https://www.facebook.com/marketplace/toronto/search/?query=sectional%20sofa","scrapedAt": "2026-10-25T14:36:54Z"}
Example detailed vehicle listing from a dealership (real row; description and photos shortened)
{"id": "2501741430316811","url": "https://www.facebook.com/marketplace/item/2501741430316811/","title": "2021 Chevrolet Malibu Β· LS Sedan 4D","price": { "amount": 1000.0, "currency": "USD", "formatted": "$1,000" },"location": {"city": "Houston", "state": "TX", "full": "Houston, TX","latitude": 29.759216308594, "longitude": -95.366821289062, "postal_code": "77002-1445"},"images": ["https://scontent.fkul15-1.fna.fbcdn.net/v/t39.30808-6/858737317_376471...", "..."],"creation_time": { "timestamp": 1792704001, "iso": "2026-10-22T21:20:01Z" },"delivery_options": ["IN_PERSON"],"seller": {"name": "Carlos Leon","id": "100004139792302","profile_url": "https://www.facebook.com/marketplace/profile/100004139792302/","joined": { "timestamp": 1343266539, "iso": "2012-07-26T01:35:39Z" },"rating_average": null,"rating_count": null,"type": "dealership","dealership_name": "Carlos","phone": "+1 832-951-5199","phone_international": "+18329515199","address": { "street": "901 Bagby St", "city": "Houston", "region": "Texas", "postal_code": "77002-2526", "country": "United States" },"website": null},"is_sold": false,"detailed": true,"search": "listing link","description": "2021 Chevy Malibu \n\n$1000 Down\n\nBad/No credit? We got you!β ...","shipping_offered": false,"vehicle": {"make": "Chevrolet","model": "Malibu","trim": "LS Sedan 4D","odometer": { "value": 100000, "unit": "miles" },"transmission": "AUTOMATIC","exterior_color": "white","vin": null,"seller_type": "DIRECT_DEALERSHIP"}}
Download results from the Output tab in JSON, CSV, Excel, HTML, or XML.
Python API example
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("parsebird/facebook-marketplace-scraper").call(run_input={"keywordSearches": [{"query": "road bike", "location": "Seattle, Washington"}],"maxPrice": 800,"dateListed": "last_7_days","maxListings": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price"]["formatted"], item["location"]["city"], item["url"])
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('parsebird/facebook-marketplace-scraper').call({vehicleSearches: [{ make: 'Honda', location: 'Houston' }],vehicleMinYear: 2018,vehicleTransmission: 'automatic',maxListings: 50,fetchDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((car) => console.log(car.title, car.price.formatted, car.vehicle?.odometer, car.seller.phone));
See the Python client docs and JavaScript client docs for more options.
Use cases
- Reselling and flipping: find underpriced furniture, electronics, or tools as soon as they're posted, using monitoring mode on a schedule.
- Used car research: compare prices by make, year, and mileage across cities, and collect dealership phone numbers and addresses.
- Price research: track asking prices and sold listings for a product category over time.
- Market analysis: count listings per city or category, and see what sells.
- Lead generation: build lists of dealerships and repeat sellers in a region.
Is it legal to scrape Facebook Marketplace?
Is scraping Facebook Marketplace data legal?
The Actor only reads listings that Facebook shows to anyone without logging in. Scraping publicly available data is generally legal in many jurisdictions, but seller names and phone numbers can be personal data protected by laws such as GDPR and CCPA. Have a legitimate reason to collect the data, respect Facebook's Terms, and check with a lawyer if you're unsure. Read more in Apify's guide: Is web scraping legal?
Other Facebook scrapers and related Actors
| Actor | Best for |
|---|---|
| Facebook Group Insights Scraper | Member counts, growth, and activity for Facebook groups |
| Facebook Public Group Posts Scraper | Posts from public groups, including buy-and-sell groups |
| Facebook User Posts Scraper | Posts from public Facebook profiles and Pages |
| Facebook Page Reviews Scraper | Reviews and recommendations on Facebook Pages |
| Meta | Facebook Ads Library Scraper | Ads from the Meta Ad Library |
| Facebook Media Downloader | HD and SD links for single videos, reels, and photos |
| Marktplaats Scraper | Listings from Marktplaats, the Dutch classifieds site |
FAQ
Do I need a Facebook account or cookies? No. The Actor reads Marketplace as a logged-out visitor, so there is nothing to log in to and no account to risk.
How many listings can I get? Up to 1,000 per search row or link, and you can add as many rows as you need. In our tests a run with four searches saved 3,078 listings in about three minutes. Facebook sometimes ends a search earlier when it has no more results for that area.
Which location formats work?
City names (Toronto, Austin, Texas), postal codes, coordinates such as 43.65,-79.38, and the city part of a Marketplace link, such as sanfrancisco from facebook.com/marketplace/sanfrancisco. Add the state or country if a city name is shared by several places. Locations Facebook doesn't know are skipped with a message in the log.
Can I scrape rentals and other categories? Yes. Open the category on Facebook Marketplace, for example property rentals in your city, copy the link, and paste it into Marketplace search links.
Why do date-filtered searches sorted by price take longer? Facebook returns no results when a date filter and a price sort are combined. The Actor runs the date-filtered search, reads up to 1,000 matches, and sorts them by price itself.
Does the "Sold" option return only sold items?
It returns what Facebook shows for sold items, which includes listings marked sale pending. Use is_sold and is_pending to tell them apart.
How does monitoring mode work? The Actor remembers the listings each search found and when it last ran. The next run of the same search, with the same filters, saves only listings that are new and posted since then. The first run saves the current listings. Schedule it with Apify schedules to get new listings every hour or day.
Why are some detail fields empty? Fields are filled only when Facebook shows them. Private sellers often skip vehicle specs, phone numbers and addresses appear on dealership listings, and seller ratings are empty when the seller keeps them private.
Can I use it from my app or connect it to other tools? Yes. Call it from the API tab, or connect it to Google Sheets, Slack, Make, or Zapier with integrations.
Where can I report issues or request a field? Open the Issues tab on the Actor page with your input and run ID.