Facebook Marketplace Scraper — No Login Required
Under maintenancePricing
from $2.00 / 1,000 listing extracteds
Facebook Marketplace Scraper — No Login Required
Under maintenanceExtract listings from Facebook Marketplace by location. No login or cookies needed. Supports geo-targeted search, category filtering, price range, and keyword search.
Pricing
from $2.00 / 1,000 listing extracteds
Rating
0.0
(0)
Developer
Crowd Pull
Maintained by CommunityActor stats
6
Bookmarked
637
Total users
44
Monthly active users
1.6 hours
Issues response
10 days ago
Last modified
Categories
Share
CrowdPull FB Marketplace Scraper
Extract listings from Facebook Marketplace worldwide — no login or cookies required.
No browser automation — just fast, lightweight HTTP requests using Facebook's internal GraphQL API. Works with any location Facebook Marketplace supports.
Features
- No login required — extracts listings anonymously from public marketplace
- Works worldwide — any city Facebook Marketplace supports (US, Europe, Asia, Latin America, etc.)
- Two input modes — paste marketplace URLs directly, or enter a city/neighborhood name
- Keyword search — filter by product name, category, or description
- Category URLs — paste category-specific URLs (e.g.,
/marketplace/chicago/home-improvements) - Price filtering — set minimum and maximum price thresholds
- Multi-URL support — scrape multiple locations or categories in a single run
- Smart Scrape (dedup) — skip listings already scraped in previous runs
- Date filtering — set
untilDateto only extract listings from a specific date onward - Strict filtering — exclude broad matches and listings from outside the target location
- Position tracking — each listing includes its original position in the search results
- Full listing data — title, price, location, image, condition, delivery options
- Rich detail mode — enable
includeDetailsfor full description, all photos, vehicle specs (make, model, odometer, colors), and listing status - Pagination — automatically loads all results via Relay cursors
- No browser — lightweight HTTP requests only, minimal compute cost
Smart Scrape: How It Saves You Money
Enable Smart Scrape to skip listings you've already extracted. The scraper maintains a persistent cache per location that survives across runs indefinitely.
| Without Smart Scrape | With Smart Scrape | |
|---|---|---|
| Run 1 (100 listings) | 100 extracted | 100 extracted |
| Run 2 (20 new) | 100 extracted | 20 new + 80 cache checks |
| Run 3 (20 new) | 100 extracted | 20 new + 80 cache checks |
| Monthly (daily runs) | 3,000 extracted | ~700 extracted + ~2,300 cache checks |
| Savings | — | ~60% cheaper |
Refresh Window
Set refreshWindowDays to re-check recent listings for price changes. For example, refreshWindowDays: 7 re-scrapes listings from the last 7 days even if cached, so you always get fresh pricing data.
Version 1.5 reads both Facebook’s offset price fields and its decimal amount field without rounding or guessing from formatted text. Smart Scrape rechecks existing cached listings once to repair prices produced by the older parser; these newly delivered rows incur the normal extraction charge. Subsequent runs use the updated cache as usual. Existing exported datasets are not rewritten.
What you get per listing
| Field | Description |
|---|---|
listingId | Unique Facebook listing ID |
title | Listing title |
price | Price in hundredths of the local currency (e.g., 250000 = $2,500.00; 50000 = ฿500.00). null if no valid numeric amount is available; explicit free prices remain 0. |
priceFormatted | Human-readable price (e.g., "$2,500") |
currency | Currency code (USD, EUR, GBP, THB, etc.) when available |
location | City and state where the item is listed |
listingUrl | Direct link to the listing |
imageUrl | Primary listing image URL |
createdAt | ISO 8601 timestamp of listing creation |
sellerName | Seller's display name (when available) |
sellerId | Seller's Facebook ID (when available) |
sellerType | Account type (User, Page, etc.) |
condition | Item condition (new, used, etc.) |
availability | Listing status |
deliveryTypes | Available delivery/shipping methods |
position | Original position in search results feed |
sourceUrl | The marketplace URL that was scraped |
scrapedAt | ISO 8601 timestamp of extraction |
Detail fields (when includeDetails is enabled)
| Field | Description |
|---|---|
description | Full listing description text |
allPhotos | Array of all photo URLs (not just the primary) |
isSold | Whether the listing has been sold |
isPending | Whether the listing is pending sale |
inventoryCount | Quantity available (for multi-item listings) |
vehicleMake | Vehicle make (e.g., "Chevrolet") |
vehicleModel | Vehicle model (e.g., "Monte Carlo") |
vehicleYear | Vehicle model year |
vehicleOdometerMiles | Odometer reading in miles |
vehicleExteriorColor | Exterior color |
vehicleInteriorColor | Interior color |
vehicleFuelType | Fuel type |
vehicleCondition | Vehicle condition |
vehicleNumberOfOwners | Number of previous owners |
vehicleSellerType | Dealer or private seller |
vehicleEngineSize | Engine displacement |
vehicleGasMileage | Fuel economy (combined or city) |
How it works
- Parses your input — marketplace URLs are used directly; location names are resolved to Facebook Place IDs via the internal typeahead API for accurate geo-targeting
- Fetches the marketplace page anonymously via TLS-fingerprinted HTTP
- Extracts authentication tokens (
lsd,datr) and location coordinates from the page SSR data - Parses search-filtered listings from page HTML (SSR) for page 1, then queries GraphQL for pagination
- Paginates via Relay cursors until
maxListingsreached or feed exhausted - Optionally enriches each listing with detail page data (description, photos, vehicle specs)
- Deduplicates against cache if Smart Scrape is enabled
Input examples
Paste marketplace URLs (power users)
{"marketplaceUrls": ["https://www.facebook.com/marketplace/chicago","https://www.facebook.com/marketplace/chicago/search/?query=furniture"],"maxListings": 100}
Enter location + search (quick start)
{"location": "São Paulo","searchQuery": "furniture","maxListings": 50}
With listing details (rich data)
{"marketplaceUrls": ["https://www.facebook.com/marketplace/chicago/vehicles"],"maxListings": 25,"includeDetails": true}
Smart Scrape (incremental monitoring)
{"marketplaceUrls": ["https://www.facebook.com/marketplace/chicago"],"maxListings": 100,"enableDedup": true,"refreshWindowDays": 7}
Output example
{"listingId": "1731225464511434","title": "2001 Chevrolet Monte Carlo · SS Coupe 2D","price": 250000,"priceFormatted": "$2,500","currency": "USD","location": "Buffalo Grove, Illinois","listingUrl": "https://www.facebook.com/marketplace/item/1731225464511434/","imageUrl": "https://scontent-det1-1.xx.fbcdn.net/v/...","createdAt": "2026-02-25T18:00:00.000Z","sellerName": "","sellerId": "","sellerType": "","condition": null,"availability": null,"deliveryTypes": ["LOCAL_PICK_UP"],"description": "2001 Monte Carlo SS, runs great, clean title. 157K miles.","allPhotos": ["https://scontent-det1-1.xx.fbcdn.net/v/photo1...", "https://scontent-det1-1.xx.fbcdn.net/v/photo2..."],"isSold": false,"vehicleMake": "Chevrolet","vehicleModel": "Monte Carlo","vehicleYear": 2001,"vehicleOdometerMiles": 157857,"vehicleExteriorColor": "red","vehicleCondition": "USED","sourceUrl": "https://www.facebook.com/marketplace/chicago","scrapedAt": "2026-03-05T12:00:00.000Z"}
Detail fields (description, allPhotos, vehicle specs, etc.) are only populated when includeDetails is enabled.
Other CrowdPull Facebook scrapers
- Facebook Group Posts Scraper — extract posts from any public Facebook group
- Facebook Post Comment Scraper — extract all comments and replies from any public post with reaction breakdowns and spam signals
Cost estimate
This Actor uses no browser — just lightweight HTTP requests.
| PPE Event | Description | Cost |
|---|---|---|
actor-start | One-time per run | $0.005 |
listing-extracted | Per listing pushed to dataset | Per-1K pricing (see Store) |
listing-details | Per listing enriched with detail page data | Per-1K pricing (see Store) |
cache-check | Per listing skipped by Smart Scrape | Reduced rate (see Store) |
A typical run extracting 100 listings costs ~$0.01-0.03 in platform fees. With includeDetails enabled, add ~$0.03/100 listings for detail enrichment.
Use cases
- Market research — analyze local pricing trends for specific product categories
- International price comparison — compare marketplace prices across cities and countries
- Competitive intelligence — monitor competitor inventory and pricing
- Arbitrage — find underpriced items across locations for resale
- Lead generation — extract seller data from niche product categories
- Price monitoring — track price changes over time with Smart Scrape
- Real estate — monitor furniture/appliance listings near rental properties
Is it legal to scrape Facebook Marketplace?
This Actor extracts publicly visible data from Facebook Marketplace. Here are the key legal considerations:
- Public data: Only publicly listed items are accessible. No private or restricted content is extracted.
- No authentication by default: The scraper works anonymously without any Facebook account, accessing only what any visitor can see.
- Terms of Service: Web scraping of public data has been upheld in multiple court rulings (hiQ Labs v. LinkedIn, 2022). However, Facebook's Terms of Service restrict automated data collection. Use this tool responsibly and in compliance with applicable laws.
- GDPR/CCPA: Extracted data may contain seller names and profile IDs. If you process this data in the EU/EEA or for California residents, ensure you have a lawful basis under GDPR/CCPA.
- Rate limiting: The scraper includes built-in delays and respects Facebook's rate limits to minimize server impact.
You are responsible for ensuring your use of this data complies with all applicable laws and regulations in your jurisdiction.
Limitations
doc_idmay rotate when Facebook redeploys — report issues if extraction stops- Facebook rate limits apply; residential proxies recommended
- Anonymous mode may return fewer results than authenticated browsing
- Price filtering depends on Facebook's GraphQL variable support (may vary by region)
includeDetailsadds ~1 second per listing (detail page fetch + rate limiting)- Seller data (name, ID) is not available in anonymous mode on detail pages
- Location resolution uses Facebook's internal typeahead API as a hint, but scraping uses city slugs because numeric/ZIP Marketplace paths can drop location scoping
Run status and supported locations
If every target fails, the run is marked Failed and the reasons are written to FAILED_TARGETS and SUMMARY. Useful output with later failures has SUMMARY.status: partial. Verified empty feeds and runs containing only already-cached listings can succeed with zero new rows.
Use a named city URL or enter a city and country in location. Direct numeric Marketplace IDs and ZIP paths are refused because their location cannot be verified; clear marketplaceUrls when using location. Alternate city names are accepted only with matching geographic evidence.
Requests, retries and setup use the configured Apify deadline, reserving time for diagnostics. A deadline stop may produce partial output.
Reliability update — September 21, 2026
Deadline stops preserve listings already fetched, including a batch interrupted during detail enrichment. Only successfully stored rows with completed requested details enter Smart Scrape; cache progress is saved on bounded stops. Unexpected crashes fail the run while keeping earlier dataset rows. Partial-target counters include interrupted targets.
Supply either Marketplace URLs or Location. Supplying both now fails before fetching, and the form no longer inserts Chicago URLs automatically. A Search Query can still refine either input mode.