Facebook Marketplace Scraper avatar

Facebook Marketplace Scraper

Pricing

from $0.34 / 1,000 listings

Go to Apify Store
Facebook Marketplace Scraper

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

ParseBird

Maintained by Community

Actor 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?

FieldDescription
title, url, idListing title, link, and ID
priceamount, currency, and Facebook's formatted price, e.g. CA$1,599
original_price, is_freeCrossed-out price when the seller lowered it; true for free items
locationCity, state, and full place name. Details add latitude, longitude, and postal code
images, video_idPhoto links (the cover photo, or all photos with details) and video ID
creation_timeWhen the listing was posted, as a Unix timestamp and ISO date
sellerSeller name and ID. Details add profile link, join date, rating, dealership name, phone, address, website
is_sold, is_pending, is_liveSold, sale pending, and live status
delivery_optionsIN_PERSON, SHIPPING, or both
description, condition, attributesFull text, condition (e.g. "Used - like new"), and other item attributes (details)
category_name, category_pathCategory such as Furniture, and its path (details)
vehicleMake, model, trim, mileage, transmission, fuel, colors, owners, title status, VIN, MPG, horsepower (vehicle details)
search, sourceUrl, scrapedAtWhich 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

  1. Open Facebook Marketplace Scraper and click Try for free.
  2. Under Search by keyword, enter what you're looking for and a location, e.g. sectional sofa and Toronto. Add more rows for more searches.
  3. For cars, add rows under Search vehicles with a make such as Honda and a location.
  4. Optionally set a price range, condition, date listed, sort order, or search radius.
  5. Set Maximum listings per search and turn on Fetch detailed information if you need descriptions, seller contacts, or vehicle specs.
  6. Click Start. Open the Output tab to see the Listings, Details, and Vehicles views.
  7. 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.

EventFree planBronzeSilverGold
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.

ExampleFree planGold
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

ParameterTypeDefaultDescription
keywordSearchesarray of {query, location}β€”Keyword searches. location is a city, postal code, lat,lng, or Marketplace city slug
vehicleSearchesarray of {make, location}β€”Vehicle searches by make, make and model, or all
startUrlsarray of linksβ€”Marketplace search, category, or rentals links
itemUrlsarray of linksβ€”Single listings, always returned with full details
searchRadiusKminteger65Area around each location, 0–500 km
minPrice, maxPriceintegerβ€”Price range in the local currency
conditionsarrayβ€”new, used_like_new, used_good, used_fair (keyword searches)
dateListedstringalllast_24_hours, last_7_days, last_30_days
deliveryMethodstringalllocal_pick_up or shipping
availabilitystringavailablesold returns sold and sale-pending listings
sortBystringbest_matchNewest, oldest, price, distance, mileage, or vehicle year
exactMatchbooleanfalseMatch the search words more strictly
vehicleMinYear, vehicleMaxYearintegerβ€”Model year range (vehicle searches)
vehicleMinMileage, vehicleMaxMileageintegerβ€”Odometer range (vehicle searches)
vehicleTransmissionstringallautomatic or manual (vehicle searches)
maxListingsinteger10Limit per search row and per link, up to 1,000
fetchDetailsbooleanfalseAdd descriptions, seller contacts, and vehicle specs
deduplicateListingsbooleanfalseSave each listing once across all searches
monitoringModebooleanfalseSave 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 ApifyClient
client = 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 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?

ActorBest for
Facebook Group Insights ScraperMember counts, growth, and activity for Facebook groups
Facebook Public Group Posts ScraperPosts from public groups, including buy-and-sell groups
Facebook User Posts ScraperPosts from public Facebook profiles and Pages
Facebook Page Reviews ScraperReviews and recommendations on Facebook Pages
Meta | Facebook Ads Library ScraperAds from the Meta Ad Library
Facebook Media DownloaderHD and SD links for single videos, reels, and photos
Marktplaats ScraperListings 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.