
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape Facebook Marketplace listings by keyword and location, or from search, category, and listing URLs. Prices, photos, sellers, descriptions, and vehicle data. No login.
Scrape Facebook Marketplace listings by keyword and city, or straight from Marketplace search, category, and listing URLs. You get the title, price, location, photos, seller, posting time, and, if you want them, the full description, condition, exact map point, seller profile link, and vehicle data. No Facebook account, login, or cookies needed, and it costs $1.00 per 1,000 listings.
bike), and a Location such as Austin, TX, a ZIP code, or a Marketplace slug like nyc./marketplace/nyc/search/?query=bike), a category (/marketplace/tulsa/vehicles), or a listing (/marketplace/item/1234567890/).| Field | What it does |
|---|---|
searchQueries | Keywords, one search per keyword. |
location | City, ZIP code, or Marketplace slug (nyc, phoenix, prague). Default New York. |
startUrls | Marketplace search, category, or listing URLs. Filters inside a URL are kept. |
maxItems | Listings to save per keyword or search URL. |
category | Limit keyword searches to one category, or browse a category with no keyword. |
minPrice, maxPrice | Price range in the local currency. |
itemCondition | new, used_like_new, used_good, used_fair. |
daysSinceListed | Listed in the last 1, 7, or 30 days. |
sortBy | Best match, newest first, price low or high, nearest first. |
deliveryMethod, availability, exact, radiusKm | Pickup or shipping, sold listings, strict keyword match, radius. |
latitude, longitude | Exact search point instead of a location name. |
includeDetails | Open each listing for the full description, photos, seller profile, and vehicle data. |
{
"searchQueries": ["bike", "iphone 15"],
"location": "Austin, TX",
"maxItems": 50,
"minPrice": 50,
"maxPrice": 800,
"sortBy": "creation_time_descend",
"includeDetails": true
}
One row per listing.
| Field | Description |
|---|---|
id, url | Listing id and link. |
title, customTitle, subtitles | Listing title, the seller's own title, and short tags such as mileage. |
price, priceFormatted, currency | Price as a number and as shown. currency is filled with details. |
originalPrice | Previous price when the seller cut it. |
locationText, city, state, latitude, longitude | Where the item is. Coordinates come with details. |
photoUrl, photos | Main photo, and every photo with details. |
isLive, isSold, isPending | Listing status. |
deliveryTypes | Pickup, door pickup, shipping. |
createdAt, creationTime | When it was posted. |
sellerName, sellerId, sellerProfileUrl | Seller name and id. The Marketplace profile link, join date, and rating come with details. |
description, condition, attributes | Full text and item attributes (details). |
vehicle | Make, model, trim, odometer, transmission, fuel, colors, title status, owners, seller type (details, vehicles only). |
searchQuery, searchLocation, sourceUrl | Which search found the listing. |
Example (a fictional listing in the real output shape, trimmed):
{
"id": "1234567890123456",
"url": "https://www.facebook.com/marketplace/item/1234567890123456/",
"title": "2016 Honda Civic · LX Sedan 4D",
"customTitle": "2016 Honda Civic LX",
"subtitles": ["98K miles"],
"price": 9800,
"priceFormatted": "$9,800",
"currency": "USD",
"locationText": "Round Rock, TX",
"city": "Round Rock",
"state": "TX",
"latitude": 30.5083,
"longitude": -97.6789,
"photoUrl": "https://scontent.xx.fbcdn.net/v/t39.30808-6/example_n.jpg",
"photos": ["https://scontent.xx.fbcdn.net/v/t39.30808-6/example_n.jpg"],
"isLive": true,
"isSold": false,
"deliveryTypes": ["IN_PERSON"],
"createdAt": "2026-10-11T15:02:44.000Z",
"sellerName": "Jordan Example",
"sellerProfileUrl": "https://www.facebook.com/marketplace/profile/100000000000001/",
"description": "One owner, clean title, new tires last spring. Cash or bank transfer.",
"condition": null,
"vehicle": {
"make": "Honda",
"model": "Civic",
"trim": "LX Sedan 4D",
"odometer": { "unit": "MILES", "value": 98000 },
"transmission": "AUTOMATIC",
"fuelType": "GASOLINE",
"titleStatus": "CLEAN",
"sellerType": "PRIVATE_SELLER"
},
"detailsScraped": true,
"searchQuery": "honda civic",
"searchLocation": "Austin, Texas"
}
Result event per saved listing).Worked example: 1,000 listings without details cost about $1.00 in events plus roughly $0.02 in proxy and compute. With details, add about $0.10 in events and about $0.23 in residential traffic. The default 20-listing search costs about $0.02 in total.
Is it legal to scrape Facebook Marketplace? The actor only reads listings that Facebook shows to anyone without logging in. Check that your use of the data follows the law where you live and Facebook's terms, especially for personal data such as seller names.
Do I need a Facebook account, cookies, or my own proxy? No. Facebook Marketplace only answers residential IPs without a login, so the actor uses the built-in residential proxy for listings and the cheaper datacenter proxy for everything else.
How many listings can I get? As many as you set per keyword or search URL, until Facebook has no more results for that search (usually 1,000 to 2,000). The status message tells you how many were saved.
Why is a field empty? Sellers fill in only some fields, and some fields (description, coordinates, all photos, seller profile, vehicle data) only come with Include listing details. A few sellers hide their name from logged-out visitors.
Can I search outside the US?
Yes. Use a city name with its country (Toronto, ON, Munich, Germany), a Marketplace slug (prague), or latitude and longitude.
Can I schedule it or use the API? Yes. Save your input as a task, schedule it (for example hourly with "Newest first"), and read results through the API or integrations.
currency is filled only with listing details.id.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
What to search for, one keyword per line, the same text you would type into the Marketplace search box. Each keyword is its own search.
locationstringOptionaldefault "New York, NY"Location
Where to search: a city (Austin, TX), a ZIP code, or a Marketplace location slug from a URL (nyc, phoenix, prague). Ignored when latitude and longitude are set. Defaults to New York.
startUrlsarrayOptionalMarketplace URLs
Optional. Facebook Marketplace search, category, or listing URLs, for example https://www.facebook.com/marketplace/nyc/search/?query=bike or https://www.facebook.com/marketplace/item/1234567890/. Filters inside a URL are used as they are; the filters below apply to keyword searches.
maxItemsintegerOptionaldefault 20Maximum listings per search
How many listings to save for each keyword or search URL. Listing URLs always return one listing.
Optional filters for keyword searches. Marketplace URLs keep the filters in the URL.
categoryenumOptionalCategory
Limit keyword searches to one Marketplace category. Pick a category and leave the keywords empty to browse that category near the location.
minPriceintegerOptionalMinimum price
Only listings at or above this price, in the local currency.
maxPriceintegerOptionalMaximum price
Only listings at or below this price, in the local currency.
itemConditionarrayOptionalCondition
Only listings in these conditions. Leave empty for any condition.
daysSinceListedenumOptionaldefault "0"Listed in the last
Only listings posted recently.
sortByenumOptionaldefault "best_match"Sort by
Order of the results.
deliveryMethodenumOptionaldefault "all"Delivery method
Local pickup, shipping, or both.
availabilityenumOptionaldefault "in stock"Availability
Available listings, or listings marked sold.
exactbooleanOptionaldefault falseExact keyword match
Ask Facebook to match the keyword more strictly.
radiusKmintegerOptionaldefault 65Radius (km)
Search radius around the location, in kilometres.
latitudenumberOptionalLatitude
Optional exact search point. Set longitude too. Overrides the location text.
longitudenumberOptionalLongitude
Optional exact search point. Set latitude too.
Extra data from each listing page.
includeDetailsbooleanOptionaldefault falseInclude listing details
Open each listing for the full description, all photos, condition and attributes, exact map point, seller profile link and rating, and vehicle data (make, model, mileage, transmission, title status). Charged as one extra event per listing.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Facebook Marketplace only answers residential IPs without a login, so listings load over residential proxies. Facebook tokens and place lookups use datacenter proxies. Proxy traffic is billed per GB.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | null | Listing id. |
| url | string | null | Listing URL. |
| title | string | null | Listing title. |
| price | number | null | Price as a number. |
| priceFormatted | string | null | Price as shown, for example $1,200. |
| currency | string | null | Currency code (with details). |
| locationText | string | null | City and state. |
| photoUrl | string | null | Main photo URL. |
| createdAt | string | null | When the listing was posted (UTC). |
| sellerName | string | null | Seller name. |
| description | string | null | Full description (with details). |
| condition | string | null | Item condition (with details). |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing details | Full listing page (description, all photos, seller profile, vehicle data) for one listing, when listing details are on. | $0.0001 |
| Result | One Facebook Marketplace listing saved to the dataset. | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/facebook-marketplace-scraper').call({
"searchQueries": [
"bike"
],
"location": "New York, NY",
"startUrls": [
"https://www.facebook.com/marketplace/tulsa/vehicles"
],
"maxItems": 20,
"latitude": 30.2672,
"longitude": -97.7431,
"includeDetails": false,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/facebook-marketplace-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/facebook-marketplace-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Search Facebook Marketplace by keyword in a city outside the US.
Marketplace listings within a price range.
Listings from the last 7 days sorted by lowest price.
Marketplace listings with seller and item details.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.