Get Marketplace Item
curl --request GET \
--url https://scrapebadger.com/v1/facebook/marketplace/item/{item_id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"custom_title": "<string>",
"url": "<string>",
"price_formatted": "<string>",
"price_amount": "<string>",
"amount_with_offset": "<string>",
"strikethrough_price": "<string>",
"min_price": "<string>",
"max_price": "<string>",
"currency": "<string>",
"primary_photo": "<string>",
"photos": [
"<string>"
],
"creation_time_utc": 123,
"created_at": "<string>",
"location_text": "<string>",
"city": "<string>",
"state": "<string>",
"city_page_id": "<string>",
"latitude": 123,
"longitude": 123,
"category_id": "<string>",
"subtitles": [
"<string>"
],
"delivery_types": [
"<string>"
],
"attributes": {},
"is_sold": true,
"is_pending": true,
"is_live": true,
"is_hidden": true,
"seller": {},
"description": "<string>"
}Endpoints
Get Marketplace Item
Full Facebook Marketplace listing detail — description body, complete photo gallery, vertical attributes and the seller profile.
GET
/
v1
/
facebook
/
marketplace
/
item
/
{item_id}
Get Marketplace Item
curl --request GET \
--url https://scrapebadger.com/v1/facebook/marketplace/item/{item_id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/facebook/marketplace/item/{item_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"custom_title": "<string>",
"url": "<string>",
"price_formatted": "<string>",
"price_amount": "<string>",
"amount_with_offset": "<string>",
"strikethrough_price": "<string>",
"min_price": "<string>",
"max_price": "<string>",
"currency": "<string>",
"primary_photo": "<string>",
"photos": [
"<string>"
],
"creation_time_utc": 123,
"created_at": "<string>",
"location_text": "<string>",
"city": "<string>",
"state": "<string>",
"city_page_id": "<string>",
"latitude": 123,
"longitude": 123,
"category_id": "<string>",
"subtitles": [
"<string>"
],
"delivery_types": [
"<string>"
],
"attributes": {},
"is_sold": true,
"is_pending": true,
"is_live": true,
"is_hidden": true,
"seller": {},
"description": "<string>"
}Fetch one Marketplace listing in full. Unlike the truncated feed cards
returned by search and category browse, this endpoint populates the
description body, the complete photos[] gallery and the vertical-specific
attributes map.
Credits: 5
Authorization
string
required
Your ScrapeBadger API key.
Path Parameters
string
required
Marketplace listing id — the numeric segment of
facebook.com/marketplace/item/<item_id>/, and the id field on every
search or category result.Response
Returns a singleMarketplaceListing object (not wrapped in an envelope).
string
Marketplace listing id.
string
Listing title.
string
Seller-authored display title, when Facebook renders a different one.
string
Canonical listing permalink.
string
Localized display price, e.g.
$1,150.string
Numeric price as a string.
string
Facebook’s minor-unit representation of the price.
string
Previous price, when the listing is discounted.
string
Lower bound for range listings (e.g. rentals).
string
Upper bound for range listings.
string
ISO currency code.
string
Cover image URL.
string[]
Full gallery of image URLs.
number
Listing creation time, Unix seconds.
string
Listing creation time, ISO 8601 UTC.
string
Display location string, e.g.
Whitley Bay, Tyne and Wear.string
City. Populated on feed cards only —
null here; read location_text.string
State / region. Populated on feed cards only —
null here; read location_text.string
Canonical Facebook place id for the listing’s city. Pass it back as a
location on
/marketplace/search
to search that town directly.number
Approximate latitude, straight from Facebook’s own listing data — never
geocoded by us. Facebook coarsens it to the seller’s area, not the address.
number
Approximate longitude, same source and precision as
latitude.string
Marketplace category the listing sits in.
string[]
Facebook’s own metadata bullets — condition, mileage, beds/baths.
string[]
local_pick_up and/or shipping.object
Vertical-specific key/values — vehicle
make/model/mileage, property beds/baths.boolean
Listing has sold. Sold listings stay retrievable.
boolean
Sale pending.
boolean
Listing is currently live.
boolean
Listing is hidden from browse.
Actor
id, name, url, profile_picture, is_verified, typename.string
Full listing body.
Example
curl "https://scrapebadger.com/v1/facebook/marketplace/item/1284419203847561" \
-H "X-API-Key: YOUR_API_KEY"
const res = await fetch(
"https://scrapebadger.com/v1/facebook/marketplace/item/1284419203847561",
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const listing = await res.json();
import requests
res = requests.get(
"https://scrapebadger.com/v1/facebook/marketplace/item/1284419203847561",
headers={"X-API-Key": "YOUR_API_KEY"},
)
listing = res.json()
Response
{
"id": "1284419203847561",
"title": "MacBook Pro 14\" M3 Pro 18GB/512GB",
"custom_title": null,
"url": "https://www.facebook.com/marketplace/item/1284419203847561/",
"price_formatted": "$1,150",
"price_amount": "1150",
"amount_with_offset": "115000",
"strikethrough_price": "$1,399",
"min_price": null,
"max_price": null,
"currency": "USD",
"primary_photo": "https://scontent.xx.fbcdn.net/v/t45.5328-4/478213_n.jpg",
"photos": [
"https://scontent.xx.fbcdn.net/v/t45.5328-4/478213_n.jpg",
"https://scontent.xx.fbcdn.net/v/t45.5328-4/478214_n.jpg",
"https://scontent.xx.fbcdn.net/v/t45.5328-4/478215_n.jpg"
],
"creation_time_utc": 1785312840.0,
"created_at": "2026-07-27T14:54:00Z",
"location_text": "Brooklyn, NY",
"city": null,
"state": null,
"city_page_id": "108424145849621",
"latitude": 40.6782,
"longitude": -73.9442,
"category_id": "electronics",
"subtitles": ["Used - Like New"],
"delivery_types": ["local_pick_up", "shipping"],
"attributes": { "condition": "used_like_new" },
"is_sold": false,
"is_pending": false,
"is_live": true,
"is_hidden": false,
"seller": {
"id": "100004421887301",
"name": "Daniel Ortiz",
"url": "https://www.facebook.com/profile.php?id=100004421887301",
"profile_picture": "https://scontent.xx.fbcdn.net/v/t1.30497-1/84628_n.jpg",
"is_verified": false,
"typename": "User"
},
"description": "Selling my 14\" MacBook Pro (M3 Pro, 18GB RAM, 512GB SSD). AppleCare until March 2027, 61 battery cycles, no scratches. Comes with the original box and 96W charger. Cash or Zelle, pickup in Park Slope."
}
latitude/longitude are the strongest listing-level location evidence and
come from Facebook, not from any geocoding of ours. If Facebook omits them for
a listing, location_text and city_page_id remain authoritative for that
listing’s place.A listing that has been deleted or is region-restricted returns
404. Sold
listings remain retrievable with is_sold: true — use that instead of
treating disappearance as a sale signal.
