FB Marketplace Scraper - Search, Vehicles & Listing Details
Pricing
from $2.00 / 1,000 listing items
FB Marketplace Scraper - Search, Vehicles & Listing Details
High-performance Facebook Marketplace Scraper! Extract listings across Vehicles, Electronics & Real Estate using keywords or location. Supports direct item URLs, full listing detail hydration, vehicle specifications, and seller profiles. Fast and perfect for data extraction
Pricing
from $2.00 / 1,000 listing items
Rating
0.0
(0)
Developer
Scrape Pilot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
🚗 Facebook Marketplace Scraper – Search, Details, Vehicles & Deals
Extract detailed public Facebook Marketplace listings — titles, prices, descriptions, locations, GPS coordinates, seller profiles, ratings, vehicle specifications, high-res photos, and deal signals — directly from Facebook Marketplace across all categories. Includes an automated Search & Radius builder and deal monitoring mode. No login required. Residential proxy ready. Pay per successful result — just $2.00 per 1,000 listings.
💡 What is the Facebook Marketplace Scraper?
This actor extracts public listing data from Facebook Marketplace by fetching and parsing search pages and individual listing item pages (https://www.facebook.com/marketplace/item/{id}/) using a high-performance Chrome browser engine with advanced stealth and anti-bot evasions. It uses a multi-strategy parser and Relay JSON extractor so it keeps working reliably:
- SSR GraphQL Relay Extraction — discovers and parses server-rendered
ScheduledServerJSandRelayPrefetchedStreamCachepayloads directly embedded in Facebook's public page response (richest data: exact prices, IDs, vehicle specifications, safety ratings, coordinates, sellers). - Multi-Node Fragment Merging — merges disparate GraphQL stream fragments for the same listing ID to ensure that titles, full descriptions, photos, and seller ratings are unified without data loss.
- Automated Search & Radius Builder — generates canonical Marketplace search URLs from your search keyword, target city slug (e.g.
nyc,losangeles,london), and customizable kilometer radius.
On top of standard marketplace attributes, the actor extracts full vehicle specifications (make, model, trim, transmission, mileage, safety ratings, vehicle features), seller profile info (name, seller ID, avatar, join year, ratings), and multi-angle gallery photos, making it ideal for automotive dealerships, price monitoring, market research, and e-commerce arbitrage.
No Facebook login, no password, and no cookies required. You are charged only for successful listing extractions — empty results, blocked attempts, or invalid URLs incur no cost.
🚀 Key Features
| Feature | Description |
|---|---|
| Keyword & Location Builder | Search any keyword (e.g. toyota rav4, iphone 15, sofa) with any city slug and custom kilometer radius. |
| Direct Listing & Search URLs | Scrapes whole search/category pages or individual listing item URLs (e.g. facebook.com/marketplace/item/123456789/). |
| All Marketplace Categories | Full support for Vehicles, Electronics, Real Estate, Classifieds, Home Goods, and Apparel. |
| Full Vehicle Specs | Extracts make, model, trim, mileage/odometer, exterior/interior colors, transmission, VIN, vehicle features, and NHTSA safety ratings. |
| Seller Profile & Trust Metrics | Pulls seller display name, user ID, profile avatar, join year, ratings summary, and delivery types (IN_PERSON, SHIPPING). |
| High-Resolution Photos | Captures primary and full multi-photo gallery arrays (listing_photos) with native resolutions, captions, and CDN URIs. |
| Strict Geo-Filtering | Eliminates broad-match or sponsored listings located outside your target radius. |
Deal Monitoring (onlyNewListings) | Cache-based deduplication across scheduled runs — emits only brand-new listings or price/availability changes. |
Date Cutoff (untilDate) | Automatically stops crawling when listings become older than your specified target date (YYYY-MM-DD). |
| No Login Required | Operates 100% publicly without personal accounts, Facebook login, or cookies. |
| Residential Proxy Ready | Automatically integrates with Apify's RESIDENTIAL proxy network matching the target marketplace country. |
| Pay Per Success & Spending Limit | Charged only per successful item. Automatically halts when your configured Apify PPE spending limit is reached. |
| Clean, Structured JSON | Delivers normalized camelCase and snake_case attributes ready for CRM, database import, or Excel/CSV export. |
📥 Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array | No | [] | List of Marketplace search URLs (e.g. /marketplace/nyc/vehicles) or direct item URLs (/marketplace/item/123456789/). |
searchKeyword | string | No | "" | Search keyword (e.g. "toyota", "iphone 15", "leather sofa"). Used with location to build search URL. |
location | string | No | "nyc" | Facebook Marketplace city slug (e.g. "nyc", "sanfrancisco", "losangeles", "miami", "chicago", "london", "toronto"). |
radiusKm | integer | No | 50 | Search radius in kilometers. |
getListingDetails | boolean | No | false | Visit each item's detail page for full descriptions, vehicle specs, and gallery photos. Leave false for lightning-fast scrapes. |
getAllListingPhotos | boolean | No | true | When getListingDetails is enabled, fetch all multi-angle gallery photos. Set to false to reduce request overhead. |
strictFiltering | boolean | No | true | Exclude broad-match or sponsored items outside your target location radius. |
onlyNewListings | boolean | No | false | Enable deal monitoring mode to emit only new listings or price changes. |
untilDate | string | No | "" | Stop crawling when listings are older than YYYY-MM-DD. |
maxItems | integer | No | 50 | Maximum number of listings to collect and push. |
proxy | object | No | Residential | Proxy configuration. Apify Residential proxies matching the target country are recommended. |
Example Input (Keyword Search & Location)
{"searchKeyword": "toyota","location": "nyc","radiusKm": 50,"getListingDetails": false,"maxItems": 20}
Example Input (Category / Search URL)
{"urls": [{"url": "https://www.facebook.com/marketplace/nyc/vehicles"}],"getListingDetails": true,"getAllListingPhotos": true,"maxItems": 10}
Example Input (Direct Listing Item URL)
{"urls": [{"url": "https://www.facebook.com/marketplace/item/1663448518713696/"}],"getListingDetails": true}
📤 Output Fields
Each successful listing is pushed to the default dataset with the following fields:
| Field | Type | Description |
|---|---|---|
id | string | Unique Facebook Marketplace listing ID. |
marketplace_listing_title | string | Clean listing title. |
custom_title | string or null | Customized title or model display title. |
formatted_price | string | Formatted listing price with currency symbol (e.g. "$11,888", "$225"). |
listing_price | object | Detailed price breakdown (formatted_amount, amount, currency, amount_with_offset). |
strikethrough_price | object or null | Original price before discount/price drop, if applicable. |
comparable_price | object or null | Estimated fair market or comparable retail price. |
condition | string | Item condition ("USED", "NEW", "USED_LIKE_NEW", "USED_GOOD"). |
description | string | Full plain-text listing description. |
location_text | string | City and state text (e.g. "New York, NY", "Jersey City, NJ"). |
location | object | Detailed location geocode, city page metadata, and GPS coordinates (latitude, longitude). |
seller_name | string | Display name of the Facebook seller. |
seller_id | string | Facebook user ID or profile ID of the seller. |
marketplace_listing_seller | object | Extended seller profile (avatar URLs, join time, seller rating statistics). |
delivery_types | array of strings | Available fulfillment methods (e.g. ["IN_PERSON"], ["SHIPPING"]). |
vehicle_make_display_name | string or null | Vehicle make (e.g. "Toyota", "Nissan", "Honda"). |
vehicle_model_display_name | string or null | Vehicle model (e.g. "RAV4", "Camry", "Rogue"). |
vehicle_trim_display_name | string or null | Vehicle trim package. |
vehicle_transmission_type | string or null | Transmission type ("AUTOMATIC", "MANUAL"). |
vehicle_odometer_data | object or null | Mileage data with unit and numeric value (e.g. {"unit": "MILES", "value": 142000}). |
vehicle_features | array of objects | Vehicle features list (Leather Seats, Moon Roof, Navigation, Backup Camera). |
vehicle_specifications | object | Detailed vehicle specifications and NHTSA safety ratings. |
primary_listing_photo_url | string | High-resolution primary photo CDN URL. |
listing_photos | array of objects | Array of full-resolution listing photos with dimensions and captions. |
creation_time | integer | Unix epoch creation timestamp. |
creation_time_formatted | string | ISO 8601 formatted listing date. |
is_live | boolean | Active listing status. |
is_sold | boolean | Sold status flag. |
is_pending | boolean | Pending sale flag. |
url | string | Canonical Facebook Marketplace listing URL. |
apify_charge_info | object | Pay-Per-Event billing audit object (listing_item, listing_item_details, seller_details). |
Example Output
[{"id": "1663448518713696","marketplace_listing_title": "2013 Toyota RAV4 · Limited Sport Utility 4D","custom_title": "2013 Toyota RAV4 Limited Sport Utility 4D","formatted_price": "$11,888","listing_price": {"formatted_amount": "$11,888","amount": "11888.00","currency": "USD"},"condition": "USED","description": "Clean title, excellent running condition, brand new tires, sunroof, heated seats, reverse camera.","location_text": "Rochelle Park, NJ","location": {"city": "Rochelle Park","state": "NJ","latitude": 40.9084,"longitude": -74.0729},"seller_name": "Ruslan Kho","seller_id": "pfbid025LVRGwD9a6QjVeSvW2Xbrv4Qj9VM6TXhPKDfV1QSsbX9xUN4AwbgjrV4bSBK4vTal","marketplace_listing_seller": {"name": "Ruslan Kho","profile_picture": "https://scontent.fdac5-2.fna.fbcdn.net/v/t39.30808-1/....jpg","join_time": 1703161116},"delivery_types": ["IN_PERSON"],"vehicle_make_display_name": "Toyota","vehicle_model_display_name": "RAV4","vehicle_trim_display_name": "Limited Sport Utility 4D","vehicle_transmission_type": "AUTOMATIC","vehicle_odometer_data": {"unit": "MILES","value": 112000},"vehicle_features": [{ "display_name": "Leather Seats", "feature_category": "SEATING" },{ "display_name": "Moon Roof", "feature_category": "EXTERIOR" },{ "display_name": "Backup Camera", "feature_category": "SAFETY" }],"vehicle_specifications": {"safety_rating_overall": "4 Star Rating","safety_rating_front": "4 Star Rating"},"primary_listing_photo_url": "https://scontent.fpos1-1.fna.fbcdn.net/v/t39.30808-6/....jpg","listing_photos": [{"id": "1663448518713696","uri": "https://scontent.fpos1-1.fna.fbcdn.net/v/t39.30808-6/....jpg"}],"creation_time": 1789563052,"creation_time_formatted": "2026-10-14T15:47:02+00:00","is_sold": false,"is_pending": false,"is_live": true,"url": "https://www.facebook.com/marketplace/item/1663448518713696/","apify_charge_info": {"listing_item": true,"listing_item_details": true,"seller_details": true}}]
💰 Pricing
| Metric | Price |
|---|---|
Per successful listing (listing-item) | $0.002 |
| Per 1,000 successful listings | $2.00 |
Listing details hydration (listing-item-details) | $0.001 |
Seller profile details (seller-details) | $0.001 |
- Pay-per-event: you are charged only when a listing is successfully extracted and pushed to the dataset.
- Failed, blocked, or not-found items are free — zero charge.
- Example: 1,000 base listings = $2.00. 10,000 base listings = $20.00.
- Spending limit protection: the run automatically and gracefully stops as soon as your configured Apify pay-per-event spending limit is reached — no further listings are processed or charged.
🛠 How to Use on Apify
- Create a task with this actor in the Apify Console.
- Choose your input mode:
- Keyword & Location: Enter
searchKeyword(e.g."toyota") andlocation(e.g."nyc"). - URLs: Paste Facebook Marketplace search links or direct item PDP URLs into
urls.
- Keyword & Location: Enter
- Set your scraping depth:
- Leave
getListingDetails: falsefor lightning-fast listing scrapes (~5-10 seconds). - Turn
getListingDetails: truefor full vehicle specs, descriptions, and seller details.
- Leave
- Proxies are configured automatically — the actor uses Apify's
RESIDENTIALproxy group matching the target marketplace region. - Run — the actor extracts listings and streams them directly into the default Dataset.
- Export — download your results as JSON, CSV, or Excel from the Dataset tab.
Running via API
curl -X POST "https://api.apify.com/v2/acts/your-username~facebook-marketplace-scraper/runs" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"searchKeyword": "toyota rav4","location": "nyc","radiusKm": 50,"getListingDetails": false,"maxItems": 20}'
🎯 Use Cases
| Industry / Use Case | How It Helps |
|---|---|
| Automotive Dealerships & Car Sourcing | Track private vehicle sellers, monitor competitive prices across makes and models, and spot undervalue listings instantly. |
| E-Commerce & Flipping Arbitrage | Source underpriced electronics (iPhones, MacBooks, GPUs, consoles) and vintage furniture for resale on eBay, Amazon, or Mercari. |
| Real Estate & Rental Market Analysis | Analyze local rental trends, sublease prices, and property availability without relying on delayed third-party aggregators. |
| Price Monitoring & Intelligence | Track price drops, historical inventory levels, and geographic price variations across different cities. |
| Brand Protection & Counterfeit Detection | Monitor unauthorized distributor listings and track trademark infringements in regional markets. |
| Academic & Market Research | Study local peer-to-peer commerce, second-hand market dynamics, and consumer pricing patterns. |
❓ Frequently Asked Questions
1. Do I need a Facebook account or cookies? No. The actor operates 100% publicly on server-rendered Marketplace pages. No login, password, or cookies required.
2. Can I scrape listings from specific cities or countries?
Yes. Set the location slug (e.g. nyc, losangeles, miami, chicago, london, toronto) and configure your proxy country to match your target marketplace region.
3. Why do I need residential proxies? Facebook restricts datacenter IPs and tailors results to geographic regions. Apify Residential proxies ensure accurate local search results and prevent blocks.
4. What is the difference between fast mode and detail mode?
In fast mode (getListingDetails: false), the scraper extracts ~24 listings from the search page in under 10 seconds with titles, prices, locations, primary photos, and seller names. Detail mode (getListingDetails: true) visits individual item pages in parallel to retrieve full descriptions, vehicle specs, and gallery photos.
5. Am I charged for failed or empty runs? No. You are charged only for listings successfully captured and pushed to the dataset.
6. Can I monitor new deals or price drops?
Yes. Enable onlyNewListings: true and schedule the actor to run every 15 minutes. It will only emit brand new listings or listings whose price or availability changed.
7. What happens when my spending limit is reached? The actor detects the pay-per-event spending limit and stops processing further listings gracefully, preventing accidental overspending.
8. Can I stop scraping listings older than a specific date?
Yes. Set untilDate to a date string (YYYY-MM-DD). The scraper will stop once it encounters listings listed before that date.
9. How does it extract vehicle specifications? It parses Facebook's native GraphQL Relay payloads containing vehicle make, model, trim, mileage, safety ratings, and equipment features.
10. What if Facebook updates its page structure? The scraper uses recursive GraphQL Relay tree traversals and multi-strategy fallbacks, so changes in visual CSS classes do not break data extraction.
📝 Technical Notes
- Target:
https://www.facebook.com/marketplace/{location}/search?query=...andhttps://www.facebook.com/marketplace/item/{id}/. - Parsing Strategies: (1) SSR GraphQL Relay JSON tree crawler (
find_marketplace_nodes_recursive), (2) Multi-fragment node merging (merge_marketplace_nodes), (3) Multi-tier price and geocode normalization. - Concurrency: Parallel detail hydration using
asyncio.Semaphore(3)to process multiple listing details concurrently without bot flags. - Charging: Uses Apify's pay-per-event
Actor.charge()forlisting-item,listing-item-details, andseller-detailswith spending-limit protection. - Output: Clean, normalized dataset records pushed directly to the Apify default dataset.
🔍 SEO Keywords
facebook marketplace scraper, facebook marketplace api, scrape facebook marketplace, facebook marketplace crawler, facebook marketplace data extractor, facebook car scraper, facebook electronics scraper, facebook marketplace deal hunter, facebook marketplace arbitrage, apify facebook marketplace, facebook real estate scraper, facebook marketplace python, facebook vehicle scraper, facebook marketplace monitor, facebook marketplace price tracker
Start scraping Facebook Marketplace listings today — only $2 per 1,000 successful listings, with automated search building and vehicle specs extraction.