Skip to main content
Facebook Marketplace

Facebook Marketplace Scraper API
listings, prices and photos

Send a Marketplace city, category or search link and get the listings back as data: title, price, the old price when it dropped, city, seller and how to get it. A listing link adds the description, condition, coordinates and every photo.

You sendwww.facebook.com/marketplace/nyc/electronics/
24 listings1 credit
You get back (real run, trimmed)
{
"listingCount": 24,
"listings": [
{
"title": "Nikon N50 Camera",
"price": "$150",
"city": "Bronx",
"state": "NY",
"createdAt": "2026-09-08T15:05:59.000Z"
},
"… 23 more"
]
}
24

listings from one New York electronics page, in one credit

6 of 24

listings in that sample carried a struck-through earlier price

1 credit

per list page or per listing in full

$0

for a page that can't be delivered

Every Marketplace link you can send

Browse Marketplace as you normally would, then copy the link. The city and filters travel in the link.

City pages

What Marketplace shows for a city, across all categories.

facebook.com/marketplace/nyc/

Categories

One category in one city, such as electronics or furniture.

facebook.com/marketplace/nyc/electronics/

Searches

A keyword search in a city, with the same results a visitor sees.

facebook.com/marketplace/la/search/?query=road%20bike

Listings

One item in full: description, category, condition, attributes, location and all photos.

facebook.com/marketplace/item/1097079526336032/

Price drops

When a seller cuts the price, the old price comes back next to the new one.

"price": "$65", "strikethroughPrice": "$80"

Pickup and delivery

How the seller hands over the item: in person, public meetup or door pickup, and whether shipping is offered.

"deliveryTypes": ["IN_PERSON", "PUBLIC_MEETUP"]

One call, every field

Point the scrape call at a Facebook Marketplace link. With JSON output and no prompt, the data comes back as it is, for 1 credit and no AI cost.

Ask for markdown instead and you get the readable page as text. The structured data still comes back, in its own structuredData field next to the markdown.

import { SpidraClient } from "spidra";
 
const spidra = new SpidraClient({
apiKey: process.env.SPIDRA_API_KEY,
});
 
const result = await spidra.scrape({
urls: [{ url: "https://www.facebook.com/marketplace/nyc/electronics/" }],
output: "json",
});
 
const data = result.content;
for (const l of data.listings) console.log(l.title, l.price, l.city, l.url);
What you get for each listing
Listing
Listing ID, title, the listing link and the date it was posted
Price
Price as shown, the amount as a number, the currency on listing pages, and the struck-through earlier price
Location
City and state on every listing; the location text and latitude and longitude on a listing page
Status
Whether the item is sold or pending
Handover
Delivery options (in person, public meetup, door pickup) and, on a listing page, whether shipping is offered
Seller
The seller's name as Marketplace shows it
Details
On a listing page: description, category, condition and attributes such as brand and color
Photos
The main photo on list pages, every photo on a listing page

What comes back

Real responses from Spidra, trimmed for length. Nothing here is mocked up.

Request
https://www.facebook.com/marketplace/nyc/electronics/

A city, category or search page: every listing in the first load.

Response (real run, October 18, 2026, trimmed)
{
"type": "marketplaceList",
"listingCount": 24,
"listings": [
{
"id": "1097079526336032",
"title": "Nikon N50 Camera",
"price": "$150",
"amount": 150,
"city": "Bronx",
"state": "NY",
"isSold": false,
"isPending": false,
"deliveryTypes": [
"IN_PERSON",
"PUBLIC_MEETUP"
],
"seller": "[redacted]",
"createdAt": "2026-09-08T15:05:59.000Z",
"url": "https://www.facebook.com/marketplace/item/1097079526336032/"
},
{
"id": "998793085884211",
"title": "GMK Tiramisu Base Keycaps",
"price": "$65",
"amount": 65,
"strikethroughPrice": "$80",
"city": "Englewood",
"state": "NJ",
"isSold": false,
"isPending": false,
"deliveryTypes": [
"IN_PERSON",
"PUBLIC_MEETUP",
"DOOR_PICKUP"
],
"seller": "[redacted]",
"createdAt": "2026-06-14T14:45:15.000Z",
"url": "https://www.facebook.com/marketplace/item/998793085884211/"
},
{
"id": "1663701212046593",
"title": "Hisense Smart TV 55” ($100)",
"price": "$100",
"amount": 100,
"city": "Brooklyn",
"state": "NY",
"isSold": false,
"isPending": false,
"deliveryTypes": [
"IN_PERSON"
],
"seller": "[redacted]",
"createdAt": "2026-10-18T20:19:10.000Z",
"url": "https://www.facebook.com/marketplace/item/1663701212046593/"
},
"… 21 more"
]
}

A whole page of listings in one call

A city, category or search link returns every listing Facebook puts in the first load of that page. The New York electronics page gave 24 listings, each with its price, city, seller and link, for 1 credit.

Prices come back twice: as Facebook shows them and as a number you can sort and average. When a seller has lowered the price, the earlier price sits next to it.

New York electronics (real run, trimmed)
"listingCount": 24,
"listings": [{
"id": "998793085884211",
"title": "GMK Tiramisu Base Keycaps",
"price": "$65",
"amount": 65,
"strikethroughPrice": "$80",
"city": "Englewood",
"state": "NJ",
"isSold": false,
"createdAt": "2026-06-14T14:45:15.000Z",
"url": "https://www.facebook.com/marketplace/item/998793085884211/"
}]

The listing page fills in the rest

List pages are short on detail by design. Send a listing link and you get what the seller wrote: the description, the category, the condition, and attributes such as brand and color, as name and value pairs.

You also get the location as coordinates, which makes distance filtering a one-liner, and every photo the seller uploaded.

One New York listing (real run, trimmed)
"title": "Nikon N50 Camera",
"price": "$150",
"amount": 150,
"currency": "USD",
"category": "Electronics & computers",
"condition": "Used - like new",
"attributes": [
{ "name": "Brand", "value": "Nikon" },
{ "name": "Color", "value": "Black" }
],
"locationText": "Bronx, NY",
"coordinates": {
"latitude": 40.849914550781,
"longitude": -73.844604492188
}

No API to wait for

Meta has no data API for Marketplace. Its Content Library includes Marketplace listings, but only for vetted non-profit researchers. If you want listing data for a product, scraping the public pages is the way to get it.

Spidra reads Marketplace as a visitor who isn't signed in sees it, so you don't need a Facebook account, and none of your accounts or cookies are ever used.

Ask for the columns you want

Describe the answer as a prompt, a JSON schema or both, and it comes back in that shape. The AI reads a compact copy of the data Spidra already read, not the whole page.

Request
const result = await spidra.scrape({
urls: [{ url: "https://www.facebook.com/marketplace/la/search/?query=road%20bike" }],
prompt: "List each listing with title, price and city.",
schema: {
type: "object",
properties: {
listings: {
type: "array",
items: {
type: "object",
properties: {
title: {
type: "string"
},
price: {
type: "string"
},
city: {
type: "string"
}
}
}
}
}
},
});
What came back (real run)
{
"listings": [
{
"title": "Road bike",
"price": "$200",
"city": "Los Angeles"
},
{
"title": "Khs flite 280 (road bike)size(s/m)",
"price": "$100",
"city": "Fontana"
},
{
"title": "Pure Cycles Red Road Bike",
"price": "$275",
"city": "Los Angeles"
},
"… 11 more"
]
}

This request cost 3 credits on October 18, 2026: 1 for the page plus the AI tokens. For the data as it is, use JSON output with no prompt for 1 credit.

What teams build with it

Marketplace is the biggest used-goods market in many cities. Its prices are useful data.

How Spidra compares

Marketplace has a few established scrapers. They price per listing, Spidra prices per page.

Apify (official actor)Bright DataScrapeCreatorsSpidra
Price$6.20 down to $2.60 per 1,000 results, listing details the same again$1.50 per 1,000 records, $1.30 on the $499 plan$1.88 down to $0.99 per 1,000 requests1 credit per page of up to 24 listings, or per listing in full
InputMarketplace linksLink, or keyword with city, radius and date listedLocation, keyword with latitude and longitude, or itemAny Marketplace city, category, search or listing link
Your Facebook loginNot neededNot neededNot neededNot needed, and never used
OutputFixed fieldsFixed fieldsFixed fieldsFixed fields, or your own schema or prompt
Beyond MarketplaceThousands of other actorsOther scrapers and datasetsOther social platformsAny website, crawl, search, PDFs, MCP

Choose Apify or Bright Data if

You need hundreds of listings from one search with paging handled for you, or keyword search by radius without building the link yourself.

Choose Spidra if

You want each page of listings for one credit, typed prices with price drops, and Marketplace plus any other website through one API.

Competitor prices and inputs are as published on their own pages on October 18, 2026 and may have changed. Spidra prices use 1 credit per page on each plan. Sources: Apify, Bright Data, ScrapeCreators.

What to know before you build

We would rather you hear the limits from us than find them in production.

  • A list page returns the listings in Facebook's first load: 24 on the New York electronics page, 15 on keyword searches in New York and Los Angeles. Scrolling for more isn't available yet. Use narrower categories, searches or cities to cover more.
  • Spidra reads Marketplace as a visitor who isn't signed in. Messaging sellers and full seller profiles need a signed-in account, so they aren't available. Spidra never uses your account or cookies.
  • The samples were run on US cities (New York and Los Angeles).
  • Most sellers are private individuals, and listings carry their names and an approximate location. Handle personal data according to the privacy laws that apply to you.

What it costs

1 credit per page. Pages that can't be delivered are free. Work out your monthly volume below.

Monthly credits
3,000
Fits the Starter plan ($19/mo)

Example: 100 list pages a day is up to 2,400 listings, about 3,000 credits a month. Plain JSON output uses no AI tokens.

PlanPriceFacebook Marketplace pages a month
Free$0up to 300 (one time)
Starter$19/moup to 5,000
BuilderPopular$79/moup to 25,000
Pro$249/moup to 125,000

Credits are shared across everything Spidra does, so the same plan covers Facebook Marketplace and any other site.

Related scrapers

Same API key, same credits. See every scraper.

FAQ

Questions, answered

Facebook Marketplace

Not for reading listings. Meta's Marketplace partner tools cover selling, not data, and its Content Library includes Marketplace listings only for vetted non-profit researchers. Spidra reads the public Marketplace pages, so you can get listings with an API key.

Send a Marketplace link and see what comes back.

Get 300 free credits, no card, and run your first Marketplace scrape from the dashboard or the API.

Spidra is not affiliated with, endorsed by, or sponsored by Meta. Facebook and Facebook Marketplace are trademarks of Meta Platforms, Inc. Check Meta's terms of service and the laws that apply to you before you collect data, and use the data responsibly.