~ / endpoints / Marketplace API

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.

Get a free API keyAll Facebook endpoints
1,000
free requests / mo
2.6s
median response
JSON
structured output
US
residential exit

Quickstart

cURL
curl "https://api.facebookscraperapi.com/api/v1/facebook/marketplace?url=https://www.facebook.com/marketplace/item/1234567890&api_key=$API_KEY"
Python
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

200 OK
{
  "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"
}
FieldTypeDescription
idstringThe Marketplace item id from the URL.
urlstringThe canonical item URL.
titlestringThe listing title from the listing entity, product JSON-LD, or og:title.
priceintegerThe listing price as a number, parsed from the listing price object or product offer.
currencystringThe price currency, defaulting to USD when not otherwise specified.
descriptionstringThe listing description from the entity, product JSON-LD, or og:description.
locationstringThe listing location text when the entity exposes it.
conditionstringThe 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

When a listing renders, capture price, currency, and condition to benchmark what comparable items sell for in a location.
>

Listing archives

Store title, price, description, and images to keep a dated record of listings you track, including ones that later sell.
>

Inventory monitoring

Watch specific item URLs to see when price or condition details change on a listing.
>

Image collection

Pull the listing photo URLs to display or archive item images alongside your own data.

How it compares

Our APIDIY (requests / headless)Official API
Read a listing itemWhen it renders, else honest diagnosticUsually a bare CSR shellNo Marketplace API exists
SetupAPI key onlyResidential proxies, headless browser, parsersNot available
Price and conditionReturned when the listing rendersYou parse it yourselfNot exposed
Anti-bot and proxiesBuilt in, US residentialYou build and maintain itNot applicable
Logged-out realityRejects shell and wall honestlyShell with no clear signalNot applicable
OutputFlat, validated JSONWhatever you parseNot applicable

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky 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/ URL does not prove the page actually rendered any data, because logged-out item pages return a bare shell titled Facebook. To avoid false positives, the endpoint requires real listing signal, a listing entity, product data, or an og:product block, and rejects both the wall and the id-only shell with a classifiable diagnostic.

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.

Get marketplace api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints