Apify Store
AS
Apify Store
/curious_coder/facebook-marketplace

Facebook marketplace scraper

Scrape facebook marketplace listings from search URLs or using filters and get complete details including seller info. ✅ Option to get only new listings* across multiple runs. 💰 Cost: $1.5 per 1K

liveasyncunknown~30s typical
ecommercesocial mediafacebookmarketplace
$0.00063
per result + $0.005 call
plus $0.001 platform fee per run
Actor charges $0.0005 per result; Cracked adds 25% plus a $0.005 call fee
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /curious_coder/facebook-marketplace for me.

Input

FieldTypeDescription
urlsarraySearch URLs (e.g. [marketplace search](https://www.facebook.com/marketplace/nyc/cars)) or individual listing URLs (e.g. https://www.facebook.com/marketplace/item/3195892660712281/). Open in incognito to verify accessibility. Optional if Filters are set.
searchKeywordstringSearch term for Marketplace listings (e.g. couch, used bike).
locationstringTo avoid matching wrong locations with similar names use location in the format "City, State, Country" (e.g. "Los Angeles, California, United States", "Brooklyn, New York, United States"). Also supports postal codes. Resolved to exact coordinates via Facebook's location search. For full control, set Latitude/Longitude instead.
radiusKmintegerThis is always km regardless of region: Facebook's UI may display miles in mile-using regions (e.g. the US), but it converts to km for the request (selecting 80 miles becomes radius=128). So to target 80 miles, enter 128. Combine with Location (city name / postal code) or Latitude/Longitude.
latitudenumberCenter latitude for Filters-based searches. When set with Longitude, overrides the Location field (location name lookup is skipped). Ignored if you paste URLs above. Set Longitude too.
longitudenumberCenter longitude for Filters-based searches. Use together with Latitude (and optionally Radius) to target an exact area; overrides Location when both coordinates are set. Ignored if you paste URLs above.
sortBystring ( | creation_time_descend | price_ascend | price_descend | distance_ascend)Order of the search results. Applies to Filters-based searches (ignored when you paste your own URLs). default ""
minPriceintegerMinimum listing price, in the searched location's local currency (e.g. a search in India filters in ₹). The currency follows the location, not the proxy region.
maxPriceintegerMaximum listing price, in the searched location's local currency (e.g. a search in India filters in ₹). The currency follows the location, not the proxy region.
conditionarrayItem condition(s) to include. Leave empty for any condition.
daysSinceListedstring ( | 1 | 7 | 30)Only include listings posted within this window. default ""
availabilitystring ( | in_stock | out_of_stock)Filter by listing availability. default ""
deliveryMethodstring ( | local_pickup | shipping)Filter by how the item is delivered. default ""
getListingDetailsbooleanScraper will visit details page and extract more information default true
getAllListingPhotosbooleanWhen get listing details is enabled, fetch listing media (images). Set to false to skip media API calls and reduce requests by ~33% default true
strictFilteringbooleanExclude listings that are broad matches (outside location, similar items, etc.) default false
maxPagesPerUrlintegerMaximum number of search pages to scrape per search URL.
untilDatestringScrape listings until this date (YYYY-MM-DD). Only works if Get listing details is enabled and search url is sorted by newest first or url contains `sortBy=creation_time_descend`
proxyobjectSet proxy country to your target marketplace region (e.g. US, IN, UK). Results depend on proxy region. Proxies are managed internally you only need to set proxy country in proxy input field.
cookiesstringFacebook cookies for authenticated scraping. When provided, enables seller details scraping. Requires logged-in session cookies (`c_user` and `xs`). Accepts **Header string** (`name1=value1; name2=value2`) or **JSON** export. Concurrency is set to 1 and random delays are added when using cookies. Follow these steps to get the cookies: <ol> <li>Install [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) chrome extension</li> <li> Login to your facebook account </li> <li> Click on the extension icon > Export > Header string <em>or</em> JSON </li> <li>Paste the copied contents here</li> </ol> <p> <a href=https://youtu.be/YuKp9BlVgNM target=_blank><img src=https://www.youtube.com/s/desktop/66e817d4/img/favicon_32x32.png width=16px> Video - How to get cookies (0:14)</a>
onlyNewListingsbooleanRemember scraped search listings across runs and skip unchanged items before fetching their details. Listings are scraped again when their price, availability, or other visible search-result content changes. default false
cacheStorageIdstringKey-value store shared by monitoring runs. Defaults to facebook-marketplace-listing-cache when empty. Use a separate store for each independent search/workflow so listings from different keywords or locations do not share one cache and get skipped

Call it

curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
  -H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
  -d '{"provider":"apify","endpoint":"/curious_coder/facebook-marketplace","input":{"urls":["https://www.facebook.com/marketplace/nyc/cars/"],"searchKeyword":"","location":"","cookies":""},"wait":false}'
poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."
cli
npx cracked-ai run -p apify -e /curious_coder/facebook-marketplace -i '{"urls":["https://www.facebook.com/marketplace/nyc/cars/"],"searchKeyword":"","location":"","cookies":""}' -w 120
mcp
run_tool({ provider: "apify", endpoint: "/curious_coder/facebook-marketplace", input: {"urls":["https://www.facebook.com/marketplace/nyc/cars/"],"searchKeyword":"","location":"","cookies":""}, wait: false })

Try it

Runs against your signed-in workspace balance. Sign in if you have not.