Get Facebook Marketplace data with three REST calls. Look up a city to get its coordinates, search listings by keyword with lat and lng, then fetch the full details of any item by id or URL. Search pages hold up to 24 listings and can be filtered by category, radius, price range, condition, delivery method, date listed and availability. Item details include title, description, price, location, condition, photos, seller and availability flags.
| Endpoint | What it returns | Credits/call | USD/call (Freelance plan) |
|---|---|---|---|
/v1/facebook/marketplace_item | Marketplace Item | 1 | $0.0017 |
/v1/facebook/marketplace_location_search | Marketplace Location Search | 1 | $0.0017 |
/v1/facebook/marketplace_search | Marketplace Search | 1 | $0.0017 |
/v1/facebook/marketplace_itemMarketplace Item 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | no | Facebook Marketplace item id |
url | string | no | Facebook Marketplace item URL |
Sample response (trimmed):
{
"id": "1656586118821988",
"url": "https://www.facebook.com/marketplace/item/1656586118821988/",
"title": "Specialized Hardrock GSX - Super Clean Vintage Restomod - INCLUDES FREE TUNE UP",
"description": "Was going to hang on to this one bc I absolutely love how it looks, but the 20” frame is just bit too large for me. Riders over 6’ would be comfy on this one...",
"creation_time": "2026-05-15T16:57:39.000Z",
"listing_date_text": null,
"availability_text": null,
"location_text": "Austin, TX",
"location": {
"latitude": 30.401916503906,
"longitude": -97.761840820312
},
"price": {
"formatted_amount_zeros_stripped": "$380",
"amount_with_offset_in_currency": 38000,
"amount": 380,
"currency": "USD"
},
"strikethrough_price": null,
"category_id": "1658310421102081",
"attributes": [
{
"attribute_name": "Condition",
"value": "used_good",
"label": "Used - Good"
}
],
"photos": [
{
"id": "2810586442651711",
"url": "https://scontent-bos5-1.xx.fbcdn.net/v/t39.84726-6/701290950_2810586459318376_3780262866029042186_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=111&ccb=1-7&_nc_sid=...",
"width": 960,
"height": 720,
"accessibility_caption": "No photo description available."
}
],
"is_hidden": false,
"is_live": true,
"is_pending": false,
"is_sold": false,
"is_viewer_seller": false,
"is_shipping_offered": false,
"is_buy_now_enabled": fal/v1/facebook/marketplace_location_searchMarketplace Location Search 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | yes | Location search query |
/v1/facebook/marketplace_searchMarketplace Search 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | yes | Search keyword |
lat | number | yes | Latitude for the search location |
lng | number | yes | Longitude for the search location |
category_id | string | no | Numeric Facebook Marketplace category ID. Listing results include this value as category_id. |
radius_km | number | no | Search radius in kilometers |
min_price | number | no | Minimum listing price |
max_price | number | no | Maximum listing price |
sort_by | string | no | Facebook Marketplace sort option. creation_time_descend usually orders the first pages newest first, but Facebook can insert newer listings on later cursor page |
delivery_method | string | no | Delivery filter |
condition | string | no | Condition filter |
date_listed | string | no | Facebook Marketplace date filter. Uses the same calendar-day buckets as the UI, so last_24_hours can include listings from the prior calendar day. |
availability | string | no | Availability filter |
next_cursor | string | no | Opaque pagination cursor returned from the previous response. Pass it back as-is. |
curl -H "X-Scapi-Key: $SCAPI_KEY" "https://api.scrapall.bipsport.com/scapi/v1/facebook/marketplace_item"import os, requests
r = requests.get("https://api.scrapall.bipsport.com/scapi/v1/facebook/marketplace_item",
headers={"X-Scapi-Key": os.environ["SCAPI_KEY"]})
print(r.json())First call the location search endpoint with query set to the city name. It returns coordinates. Then call the Marketplace search endpoint with query, lat and lng. Each page contains up to 24 listings, and you can add filters such as radius_km, min_price, max_price, condition or date_listed.
Each search response returns a cursor. Pass that value back as-is in next_cursor to get the next page of listings for the same query and location. Do not change or decode the cursor, because it is tied to the search that produced it.
Each listing includes creation_time as an ISO 8601 UTC timestamp when Facebook exposes an exact listing timestamp, plus listing_date_text when available. Either field can be null, so your code should handle listings without an exact date.
The item endpoint takes an item id or a Marketplace item URL and returns title, description, price, location, condition, photos, seller and availability flags. Rental listings can also include listing_date_text and availability_text, such as 'Available now'.
Yes. Pass category_id to restrict results to a numeric Facebook Marketplace category ID. You can take that ID from the category returned on listing results, so a first broad search helps you find the right category for later, narrower searches.
Open the Buy page, pick the Freelance plan and pay in USDT on TRC20 or ERC20. The key is shown once, right after the payment is confirmed on-chain.
The cost table on this page lists credits per call for each endpoint. The Freelance plan is $45 for 27,000 credits per 30 days.
Full reference: all facebook-marketplace endpoints.