Facebook Marketplace Scraper avatar

Facebook Marketplace Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Facebook Marketplace Scraper

Facebook Marketplace Scraper

Facebook Marketplace scraper for finding public listings by keyword, location, price, condition, and category. Export results to CSV, Excel, or JSON.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

devcake

devcake

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape and export public Facebook Marketplace listings

Collect public Facebook Marketplace listings in a clean, ready-to-use table. This Actor searches by keyword or browses Facebook Marketplace search and category pages, applies practical filters, and exports normalized results through an Apify Dataset.

No Facebook login is required. The Actor only reads information Facebook shows publicly and never creates, edits, buys, sells, or messages about listings.

๐Ÿ”Ž What can this Facebook Marketplace scraper do?

  • ๐Ÿ” Run one or more keyword searches, with a separate listing limit for each query.
  • ๐Ÿ—‚๏ธ Browse Marketplace search or category links and numeric category IDs.
  • ๐Ÿ“ Filter by location, radius, price, condition, listing date, delivery method, and availability.
  • โ†•๏ธ Sort listings by best match, newest, price, or distance.
  • ๐Ÿ“„ Optionally enrich search results with fuller descriptions, photos, videos, public seller information, and category-specific details.
  • ๐Ÿงน Remove duplicate listing IDs found across multiple searches or sources.
  • ๐Ÿ“ฆ Save normalized results to an Apify Dataset for export or integration.

The Actor requires at least one search query or one Marketplace link/category ID. When queries contains a value, it takes priority and categoryUrlsOrIds is ignored.

๐Ÿš€ How to scrape Facebook Marketplace listings

  1. ๐Ÿ” Enter a phrase such as office chair in Search queries. To browse instead, clear the queries and add a Marketplace search/category link or numeric category ID.
  2. ๐ŸŽ›๏ธ Choose the listing limit and any location, price, condition, date, delivery, availability, or sorting options.
  3. ๐Ÿ“„ Enable Include listing details when you need richer listing-page data. Detail requests take longer than search-only runs.
  4. โ–ถ๏ธ Click Run.
  5. ๐Ÿ“ฅ Open the Dataset tab to preview or export the results.

โš™๏ธ Input configuration

The table below mirrors the current .actor/input_schema.json fields.

InputTypeDefaultWhat it does
queriesArray of stringsoffice chair prefillRuns each keyword as a separate search. If non-empty, these queries take priority over categoryUrlsOrIds.
categoryUrlsOrIdsArray of strings[]Accepts HTTPS Facebook Marketplace search, browse, city, or category links, plus numeric category IDs. Listing item URLs are not accepted here.
maxItemsPerQueryInteger50Returns at most this many listings for each query, link, or category ID. Allowed range: 1โ€“500.
includeListingDetailsBooleanfalseOpens listing pages to enrich results with fuller descriptions, media, seller information, and category details when available. With the current runtime defaults, up to 100 search results are enriched per run.
locationStringEmptySets a city, state, country, ZIP code, or Marketplace location slug for keyword/category-ID searches.
radiusKmNumberNot setSets the search radius around the selected location. Minimum: 0.1 km.
minPriceNumberNot setKeeps listings at or above this price in the Marketplace currency. Minimum: 0.
maxPriceNumberNot setKeeps listings at or below this price in the Marketplace currency. Minimum: 0.
sortBySelectbest_matchSorts by best match, newest first, price low-to-high, price high-to-low, or nearest first.
conditionsMulti-select[]Filters for new, usedโ€”like new, usedโ€”good, and/or usedโ€”fair listings.
daysSinceListedIntegerNot setKeeps listings posted within the selected number of days. Allowed range: 1โ€“365.
untilDateStringNot setKeeps listings posted on or after this date. Format: YYYY-MM-DD.
deliveryMethodsMulti-select[]Filters for local pickup, shipping, or both.
availabilitySelectin_stockReturns all listings, available listings only, or sold/pending listings.
proxyConfigurationObjectApify Residential, USControls the connection used for Facebook requests. The default usually works best.

The Actor applies the configured filters whenever Facebook provides enough data to evaluate them. A supplied Marketplace URL also retains the search context encoded in that URL. If Facebook omits a field needed to verify a filter, the result can be retained and identified through filterUnverifiedFields and filtersVerified instead of having missing data guessed.

Example input

{
"queries": [
"office chair",
"standing desk"
],
"categoryUrlsOrIds": [],
"maxItemsPerQuery": 25,
"includeListingDetails": true,
"location": "San Francisco, California",
"radiusKm": 25,
"minPrice": 20,
"maxPrice": 300,
"sortBy": "creation_time_descend",
"conditions": [
"used_like_new",
"used_good"
],
"daysSinceListed": 7,
"deliveryMethods": [
"local_pick_up"
],
"availability": "in_stock",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
],
"apifyProxyCountry": "US"
}
}

๐Ÿ“ฆ What Facebook Marketplace data can you extract?

Data groupExamples
ListingID, URL, title, description, condition, attributes, category, and inventory count
PriceFormatted price, numeric amount, currency, price type, previous price, and price range
LocationPlace name, city, state, postal code, coordinates, and calculated distance
MediaMain image, photo gallery, and video URLs
AvailabilityAvailable, sold, pending, live status, and delivery types
SellerPublic seller ID, name, profile URL, profile image, and business status
Category detailsVehicle and real-estate information when Facebook provides it
ProvenanceSearch query, requested source, source type, scrape time, and resolved search context
Quality and detail statusVerified/unverified filters, mismatch reasons, detail status, attempts, source, and errors

Search results may already contain many of these fields. Enabling includeListingDetails gives the Actor a chance to enrich each result from its listing page. Missing information is left empty rather than guessed, and seller information is limited to publicly visible fields.

๐Ÿ“ค Export and use your Marketplace data

Results appear in an Apify Dataset, the downloadable table for the run. Preview it in the browser or export it as Excel, CSV, JSON, XML, or another supported format. See the Apify Dataset documentation.

You can also:

  • ๐Ÿ—“๏ธ Save the input as an Apify Task and run it on a schedule.
  • ๐Ÿ”Œ Connect the Dataset to other tools through Apify integrations or the Apify API.
  • ๐Ÿงพ Read the run summary and diagnostics from the Actor output links.

๐Ÿ’ณ Pricing, limits, and reliability

  • ๐Ÿ’ฐ Check the Actor's Pricing tab for current pricing and use Apify's spending limit to control your budget.
  • ๐Ÿ“Š maxItemsPerQuery is a per-query/source cap; duplicate IDs are merged before the Dataset is written.
  • โณ Enabling listing details adds requests and can increase runtime and cost.
  • ๐ŸŒ Facebook may limit public access, omit fields, or vary results by location and connection.
  • ๐Ÿ› ๏ธ If a run returns no listings, try a broad query, fewer filters, a recognized Marketplace location, or the default proxy settings.

โ“ Frequently asked questions

Can Apify scrape Facebook Marketplace?

Yes. This Actor collects publicly visible Marketplace search and category results and saves normalized records to an Apify Dataset. Results depend on what Facebook exposes publicly for the selected location and connection.

Do I need a Facebook account?

No. The Actor does not require Facebook credentials and does not access private Marketplace data, messages, or account-only actions.

Can I use a Facebook Marketplace URL instead of a keyword?

Yes. Clear queries, then add an HTTPS Facebook Marketplace search, browse, city, or category URL to categoryUrlsOrIds. You can also use a numeric Marketplace category ID. Direct /marketplace/item/... listing URLs are not part of the current input schema.

Why are some output fields empty?

Facebook does not expose every field on every search result or listing page. Missing values are left empty. Enable includeListingDetails to request richer data, while keeping in mind that a detail page can still be partial or unavailable.

Legality depends on the data, location, purpose, and use. Public access does not make every use automatically permitted. Follow applicable laws, Facebook's terms, privacy rules, and reasonable limits. Seek legal advice when needed.