Facebook Marketplace Scraper API
Our Facebook Marketplace scraper targets a public item listing and returns structured JSON: the title, price and currency, location, description, images, seller, and condition. It reads the listing entity and og:product tags in the item page. Facebook requires a session for essentially all Marketplace item detail, so the endpoint is honest about when a listing renders and when it does not.
Quickstart
curl "https://api.facebookscraperapi.com/api/v1/facebook/marketplace?url=https://www.facebook.com/marketplace/item/1234567890&api_key=$API_KEY" import requests
BASE = "https://api.facebookscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass a Marketplace item URL or id. Response follows the documented listing shape.
data = requests.get(
f"{BASE}/api/v1/facebook/marketplace",
params={
"url": "https://www.facebook.com/marketplace/item/1234567890",
"api_key": API_KEY,
},
timeout=30,
).json()
print(data["title"], "-", data["price"], data["currency"])
print("location:", data["location"])
print("condition:", data["condition"]) Response
{
"id": "1234567890",
"url": "https://www.facebook.com/marketplace/item/1234567890/",
"title": "Mid-century oak dining table",
"price": 240,
"currency": "USD",
"description": "Solid oak dining table, seats six. Light wear on the surface, structurally solid.",
"location": "Austin, TX",
"condition": "Used - Good",
"seller": "Jordan M.",
"images": [
"https://scontent.xx.fbcdn.net/v/t45.5328-4/example_listing_1.jpg",
"https://scontent.xx.fbcdn.net/v/t45.5328-4/example_listing_2.jpg"
],
"thumbnail": "https://scontent.xx.fbcdn.net/v/t45.5328-4/example_listing_1.jpg",
"source": "facebook",
"data_source": "relay-entity"
} | Field | Type | Description |
|---|---|---|
id | string | The Marketplace item id from the URL. |
url | string | The canonical item URL. |
title | string | The listing title from the listing entity, product JSON-LD, or og:title. |
price | integer | The listing price as a number, parsed from the listing price object or product offer. |
currency | string | The price currency, defaulting to USD when not otherwise specified. |
description | string | The listing description from the entity, product JSON-LD, or og:description. |
location | string | The listing location text when the entity exposes it. |
condition | string | The item condition when present, e.g. Used - Good. |
Why it is hard
Facebook Marketplace requires a session for essentially all item detail: logged out, an item URL returns a bare app shell with no listing data, and there is no official API that exposes Marketplace listings at all. So a populated listing generally needs an authenticated session, not a plain request.
Use it for
Price research
Listing archives
Inventory monitoring
Image collection
How it compares
| Our API | DIY (requests / headless) | Official API | |
|---|---|---|---|
| Read a listing item | When it renders, else honest diagnostic | Usually a bare CSR shell | No Marketplace API exists |
| Setup | API key only | Residential proxies, headless browser, parsers | Not available |
| Price and condition | Returned when the listing renders | You parse it yourself | Not exposed |
| Anti-bot and proxies | Built in, US residential | You build and maintain it | Not applicable |
| Logged-out reality | Rejects shell and wall honestly | Shell with no clear signal | Not applicable |
| Output | Flat, validated JSON | Whatever you parse | Not applicable |
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
What is a Facebook Marketplace scraper?
A Facebook Marketplace scraper reads a public item listing and returns it in a structured format. Our Facebook Marketplace scraper API takes an item URL or id and, when the listing renders, returns the title, price, currency, location, description, images, seller, and condition as JSON. The extractor reads the listing entity, product JSON-LD, and og:product tags.
Can I scrape Marketplace listings without logging in?
Usually not, and the endpoint is honest about it. Facebook requires a session for essentially all Marketplace item detail, so a logged-out item URL returns a bare app shell with no listing data. When that happens, the endpoint returns a clear diagnostic and rejects the shell rather than emitting a false row. For populated listing data, run the endpoint with an authenticated session.
What does the Marketplace endpoint return when it succeeds?
When an item page renders, you get the item id, canonical URL, title, price as a number, currency, description, location, condition, seller name, and an array of listing photo URLs, plus a data_source flag showing whether the fields came from the listing entity, product JSON-LD, or og tags. Fields that the page does not expose come back null.
Why does the endpoint reject some item pages?
An item id parsed from the /marketplace/item/
Is there an official Facebook Marketplace API?
No. Facebook does not offer a public API that exposes Marketplace listings, which is why there is no official-API column of note for this data. This endpoint reads the public item page when it renders and reports honestly when the login gate blocks it. You authenticate with a single facebookscraperapi key, and the free tier includes 1,000 requests.
How should I use this endpoint given the login gate?
Treat it as a listing endpoint that returns the documented shape when an item renders and reports a classifiable diagnostic when Facebook walls or shells the page logged-out. Teams that need consistent listing data run it with an authenticated session, and use the honest failure signal to detect and retry blocked captures instead of accepting empty rows.