Facebook Marketplace Scraper avatar

Facebook Marketplace Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Facebook Marketplace Scraper

Facebook Marketplace Scraper

Extract data from Facebook Marketplace listings. Scrape items for sale, apartments, categories, search results with prices, locations, seller info, and more. Export data in JSON, CSV, or Excel.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

6

Bookmarked

246

Total users

18

Monthly active users

11 days ago

Last modified

Share

Extract public Facebook Marketplace listings by search URL, category, location, keyword, or direct item URL. The actor returns normalized listing data for products, furniture, vehicles, apartments, collectibles, and other Marketplace categories, including title, price, location, photos, seller availability, delivery information, listing status, and source attribution.

What this actor does

  • Scrapes one or many Marketplace URLs in a single run.
  • Builds a Marketplace search URL from searchQuery and location when URL input is not supplied.
  • Supports category, price, condition, delivery, date, radius, and sort filters.
  • Streams fast-mode results to the dataset while the run is still collecting listings.
  • Optionally visits listing pages for deeper fields such as descriptions, attributes, creation time, and additional media.
  • Adds the exact input source to every output row so results from multiple searches can be attributed.
  • Deduplicates listings across inputs by default and keeps the first source attribution.
  • Uses a US Apify residential proxy by default for public Marketplace access.

Quick start

The daily prefill is intentionally small and production-safe for a smoke test:

{
"startUrls": [
{ "url": "https://www.facebook.com/marketplace/nyc/search/?query=laptop" }
],
"maxItems": 5,
"maxItemsPerUrl": 5,
"scrapeMode": "fast",
"includeListingDetails": false,
"includeAllPhotos": false,
"deduplicateAcrossInputs": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

For a larger collection, increase maxItems and maxItemsPerUrl. These values are ceilings, not promises that Facebook has that many matching listings available.

Input

Use startUrls, or use searchQuery together with location when startUrls is omitted. Additional search and output controls are optional.

FieldTypeDefaultPurpose
startUrlsarraydaily prefill URLMarketplace search, category, location, or direct item URLs
searchQuerystringnoneKeyword or phrase such as laptop, used bicycle, or sofa
locationstringnoneMarketplace slug or city/state, such as nyc or Austin, TX
latitude / longitudenumbernoneStructured-search center coordinates
radiusKmintegernoneStructured-search radius from 1 to 500 km
categoryIdstringnoneFacebook Marketplace category ID
sortByenumrelevancerelevance, newest, price_asc, or price_desc
minPrice / maxPricenumbernoneVerified price range
conditionenumanyany, new, used_like_new, used_good, or used_fair
deliveryMethodenumallall, shipping, or local
daysSinceListedintegernoneInclude listings created within this many days when creation time is available
maxItemsinteger50Global output limit across all sources, up to 10,000
maxItemsPerUrlinteger50Output limit for each source URL, up to 10,000
resultsLimitintegernoneLegacy per-source limit for existing integrations; maxItemsPerUrl takes precedence
scrapeModeenumfastfast, deep, or auto
includeListingDetailsbooleanfalseCompatibility alias that enables deep detail enrichment
includeAllPhotosbooleanfalseRetain all photo data exposed during detail enrichment
deduplicateAcrossInputsbooleantrueEmit a listing ID once across all input sources
proxyConfigurationobjectUS residential Apify ProxyApify proxy settings; Apify Proxy is forced to the residential group

Supported URL types

  • Location feed: https://www.facebook.com/marketplace/sanfrancisco/
  • Category feed: https://www.facebook.com/marketplace/sanfrancisco/instruments
  • Search feed: https://www.facebook.com/marketplace/sanfrancisco/search/?query=crane
  • Direct item: https://www.facebook.com/marketplace/item/772594759027016/

URLs can be supplied as a list so multiple cities, categories, or keyword searches can be collected in one run.

Structured search example

{
"searchQuery": "laptop",
"location": "New York, NY",
"radiusKm": 25,
"sortBy": "newest",
"condition": "used_good",
"minPrice": 50,
"maxPrice": 500,
"maxItems": 100
}

Output

The default dataset contains one JSON object per listing. A row is never an array of listings. The actor preserves useful Facebook fields where available and adds normalized fields for consistent downstream processing.

Normalized fields

FieldDescription
idFacebook Marketplace listing ID
titleNormalized listing title
priceTyped price object when a numeric price is available
city / stateNormalized location values when exposed
locationTextHuman-readable location text
primaryPhotoUrlURL of the primary listing photo
sourceUrlExact input URL that produced the row
sourceTypesearch, category, location, or item
inputIndexZero-based position of the input source
searchQueryQuery associated with the source, when known
locationQueriedLocation associated with the source, when known
extractionSourcesearch_page or detail_page
qualityStatuscomplete or partial based on observed fields
missingFieldsFields unavailable from the current page/session
sellerDataAvailabilityWhether seller data was exposed by Facebook

Facebook-compatible fields

Common source fields include facebookUrl, listingUrl, marketplace_listing_title, listing_price, strikethrough_price, location, primary_listing_photo, listing_video, marketplace_listing_category_id, marketplace_listing_seller, delivery_types, is_hidden, is_live, is_pending, is_sold, redacted_description, creation_time, item_location, attribute_data, commerce_badges_info, cross_post_info, share_uri, shipping_offered, and search_pivots.

Fields are conditional. Descriptions, seller identity, exact coordinates, vehicle attributes, status flags, photos, and delivery details are returned only when Facebook exposes them for that listing and session. The actor does not invent missing values.

Fast and deep modes

fast extracts search-page data, writes rows incrementally, and is the recommended mode for broad searches and hundreds of results. deep visits listing pages for additional detail fields and writes enriched rows after deduplication. auto follows the detail compatibility settings.

Use includeListingDetails: true when an existing integration expects deep enrichment. includeAllPhotos: true also enables deep mode. Deep mode costs more and can take longer because it makes bounded detail-page requests for individual listings.

Reliability and data quality

  • Every row contains source attribution for multi-query analysis.
  • Duplicate listing IDs are merged and suppressed across inputs by default.
  • The actor distinguishes valid empty searches from login pages, consent pages, checkpoints, challenges, network failures, and schema failures.
  • A no-result run is not silently treated as a valid empty search when access was not verified.
  • Search filters are applied only against values that can be verified from the extracted listing.
  • CDN media URLs are returned as observed and may expire according to Facebook's own policy.
  • Facebook may change page markup, restrict access, require a session, or vary results by IP and location. Public-page access is supported, but no scraper can guarantee a result count when the source has no accessible matches.
  • Residential proxies are recommended for production volume. When Apify Proxy is selected, the actor uses the residential group and US proxy country to keep the default behavior predictable.

Daily smoke test and production testing

The .actor/input_schema.json prefill is the daily smoke test configuration: one known NYC laptop search, five global and per-source rows, fast mode, deduplication enabled, and US residential Apify Proxy. It is designed to verify access, parsing, incremental output, provenance, and schema shape without spending production-scale credits.

For a release or deployment check, confirm that the run succeeds, the dataset contains rows when the source is accessible, each row has id, title or the source title, sourceUrl, sourceType, and qualityStatus, and the dataset receives rows before the run finishes in fast mode. Use a larger maxItems only after the smoke test passes.

Common use cases

  • Monitor product prices and availability across cities.
  • Find furniture, electronics, vehicles, apartments, and collectibles by keyword.
  • Compare Marketplace demand by city, state, category, or search query.
  • Build lead, inventory, and market-research datasets with per-query attribution.
  • Export structured JSON or CSV from the Apify dataset for analytics and automation.

FAQ

Does Facebook Marketplace have a public data API?

Facebook does not provide a general public API for Marketplace search results. This actor reads data exposed by accessible Marketplace pages.

Why did a run return fewer items than maxItems?

maxItems is an upper limit. The source may expose fewer matching listings, hide records from the current session, or restrict access. A verified empty result is reported as an empty valid search; access failures are classified separately.

Should I enable listing details?

Use fast mode for volume and speed. Enable includeListingDetails or includeAllPhotos when descriptions, attributes, creation times, or additional media are more important than runtime and cost.

Can I identify which query produced each listing?

Yes. sourceUrl, sourceType, inputIndex, searchQuery, and locationQueried are included whenever the source supplies that information.

Is authentication required?

The actor is designed for accessible public Marketplace pages, but Facebook can require a logged-in session, consent, or an anti-abuse challenge depending on traffic, region, and account state. The actor reports those access states instead of presenting them as valid empty data.

What proxy should I use?

Use the default US residential Apify Proxy configuration for US Marketplace searches. Custom proxy settings can be supplied for an appropriate deployment, but datacenter traffic is more likely to encounter restrictions.

Is scraping Facebook Marketplace allowed?

Use only data you are authorized to access and comply with applicable laws, Facebook terms, privacy requirements, and the rules of your target use case. This actor does not provide access to private information.