Facebook Marketplace Scraper avatar

Facebook Marketplace Scraper

Pricing

from $6.00 / 1,000 item processeds

Go to Apify Store
Facebook Marketplace Scraper

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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?

FieldDescription
idFacebook Marketplace listing ID.
listingUrlCanonical Marketplace listing URL.
sourceUrlInput URL where the listing was found.
titleListing title when visible.
priceTextDisplayed price text.
priceAmountParsed numeric price when possible.
currencyParsed currency when possible.
locationTextDisplayed listing location.
city, stateParsed city and state/region when present.
primaryImageUrl, imageUrlsPublic listing image URLs when available.
sellerName, sellerIdPublic seller fields only when exposed in logged-out data.
description, attributes, createdAtDetail fields reserved for public detail extraction.
detailStatusStatus of optional detail extraction.
scrapedAtISO timestamp when the row was saved.

Input configuration

SettingJSON keyUse it forExample
Facebook Marketplace URLsstartUrlsPublic Marketplace search, city, category, or listing routes.https://www.facebook.com/marketplace/sanfrancisco/search/?query=guitar
Maximum listingsmaxItemsCap saved rows and control spend.50
Proxy configurationproxyConfigurationUse 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:

TierItem 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: 25 until 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 ApifyClient
client = 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.

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.