Facebook Marketplace Scraper
Pricing
from $6.00 / 1,000 item processeds
Facebook Marketplace Scraper
Extract public Facebook Marketplace listings from search, city, and category URLs with prices, images, locations, and listing IDs.
Pricing
from $6.00 / 1,000 item processeds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape public Facebook Marketplace listings from search, city, and category URLs. Export listing IDs, URLs, titles, prices, locations, and images to CSV, JSON, Excel, datasets, API workflows, and AI agents.
Use this Actor to monitor local resale inventory, compare asking prices, collect marketplace leads, or feed internal deal-tracking workflows without managing browser automation yourself.
At a glance
- Primary job: Extract public Facebook Marketplace listing rows from Marketplace URLs.
- Input: Paste one or more public Marketplace search, city, category, or listing URLs and set a listing limit.
- Output: One dataset row per listing with URL, ID, title, price, location, image, source URL, and scrape timestamp.
- Best for: Local inventory monitoring, resale research, competitive pricing, rental/property checks, and automation.
Who is this for?
- Resellers and buyers tracking local asking prices and newly listed items.
- Market researchers collecting inventory samples across cities or categories.
- Real estate and rental teams monitoring public Marketplace property listings.
- Automation teams feeding public listing rows into alerts, CRMs, spreadsheets, or dashboards.
Input recipes
Before public Apify example tasks exist, use these input recipes directly.
Used guitars in San Francisco
{"startUrls": [{ "url": "https://www.facebook.com/marketplace/sanfrancisco/search/?query=guitar" }],"maxItems": 25,"proxyConfiguration": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }}
Laptops in New York City
{"startUrls": [{ "url": "https://www.facebook.com/marketplace/nyc/search/?query=laptop" }],"maxItems": 25,"proxyConfiguration": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }}
What data can you extract?
| Field | Description |
|---|---|
id | Facebook Marketplace listing ID. |
listingUrl | Canonical Marketplace listing URL. |
sourceUrl | Input URL where the listing was found. |
title | Listing title when visible. |
priceText | Displayed price text. |
priceAmount | Parsed numeric price when possible. |
currency | Parsed currency when possible. |
locationText | Displayed listing location. |
city, state | Parsed city and state/region when present. |
primaryImageUrl, imageUrls | Public listing image URLs when available. |
sellerName, sellerId | Public seller fields only when exposed in logged-out data. |
description, attributes, createdAt | Detail fields reserved for public detail extraction. |
detailStatus | Status of optional detail extraction. |
scrapedAt | ISO timestamp when the row was saved. |
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Facebook Marketplace URLs | startUrls | Public Marketplace search, city, category, or listing routes. | https://www.facebook.com/marketplace/sanfrancisco/search/?query=guitar |
| Maximum listings | maxItems | Cap saved rows and control spend. | 50 |
| Proxy configuration | proxyConfiguration | Use Apify Proxy. Residential is recommended for Facebook Marketplace. | { "useApifyProxy": true, "groups": ["RESIDENTIAL"] } |
Example input
{"startUrls": [{ "url": "https://www.facebook.com/marketplace/sanfrancisco/search/?query=guitar" }],"maxItems": 25,"proxyConfiguration": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }}
Example output
{"id": "1382249123799344","listingUrl": "https://www.facebook.com/marketplace/item/1382249123799344/","sourceUrl": "https://www.facebook.com/marketplace/sanfrancisco/search/?query=guitar","title": "Guitar San Francisco, CA","priceText": "$80","priceAmount": 80,"currency": "USD","locationText": null,"city": null,"state": null,"primaryImageUrl": "https://scontent.example/listing.jpg","imageUrls": ["https://scontent.example/listing.jpg"],"deliveryTypes": [],"isLive": null,"isPending": null,"isSold": null,"sellerName": null,"sellerId": null,"description": null,"attributes": {},"createdAt": null,"detailStatus": "not_requested","scrapedAt": "2026-07-16T09:12:17.832Z"}
Pricing
This Actor uses pay-per-event pricing with a small run-start charge and tiered per-listing pricing. The current Store tiers are:
| Tier | Item processed price |
|---|---|
| Free | $0.0115 |
| Bronze | $0.0100 |
| Silver | $0.0078 |
| Gold | $0.0060 |
| Platinum | $0.0040 |
| Diamond | $0.0028 |
The item event is charged for each valid Marketplace listing row saved to the dataset.
Tips for best results
- Start small: Use
maxItems: 25until the route and output match your use case. - Use public Marketplace URLs: The Actor does not use cookies, accounts, private messages, saved listings, or seller contact channels.
- Choose focused searches: Specific city and query URLs produce cleaner monitoring datasets than broad Marketplace home pages.
- Schedule repeat runs: Compare datasets over time to track price changes and new local inventory.
API usage
Node.js:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("fetch_cat/facebook-marketplace-scraper").call({startUrls: [{ url: "https://www.facebook.com/marketplace/sanfrancisco/search/?query=guitar" }],maxItems: 25});console.log(run.defaultDatasetId);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("fetch_cat/facebook-marketplace-scraper").call(run_input={"startUrls": [{ "url": "https://www.facebook.com/marketplace/nyc/search/?query=laptop" }],"maxItems": 25,})print(run["defaultDatasetId"])
cURL:
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~facebook-marketplace-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls":[{"url":"https://www.facebook.com/marketplace/sanfrancisco/search/?query=guitar"}],"maxItems":25}'
MCP and AI agents
Use this Actor from MCP-compatible tools through the official Apify MCP Server.
$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/facebook-marketplace-scraper"
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/facebook-marketplace-scraper"}}}
Example prompt: "Run Facebook Marketplace Scraper for used guitars in San Francisco and summarize the listing prices."
Limits and caveats
- Public data only: This Actor does not log in and does not collect private seller contact data or messages.
- Availability varies: Facebook can hide, remove, or change listing data at any time.
- Anti-bot sensitivity: Residential proxy is recommended. Very large or frequent runs may be throttled.
- Optional fields: Seller, status, and detail fields remain empty when not publicly exposed.
Legality and responsible use
Process only data that you are allowed to access. Follow website terms, Apify's terms, and applicable laws.
Related actors
FAQ
Can I export results?
Yes. Apify datasets support JSON, CSV, Excel, XML, RSS, and API access.
Does this Actor need my Facebook account?
No. V1 is limited to public logged-out Marketplace data and does not accept cookies or credentials.
Why are some fields empty?
Some Marketplace fields are not exposed publicly on every route. The Actor leaves unavailable fields empty instead of guessing.
Support
Open an issue from the Actor page if a run fails or output looks wrong. Include the run ID or run URL, input JSON, expected output, actual output, and one reproducible public URL.