Operated by Sourcelane✓ verified
A scraper and search tool for Facebook Marketplace that finds listings by keyword and location (including coordinates) and extracts structured listing metadata and optional full-item details: titles, prices (numeric value and currency, including original/strikethrough prices), location (city/state and display name, plus GPS coordinates when enabled), primary photo and photo gallery, item condition and attribute lists (brand, size, model, etc.), delivery options, sold/pending flags, listing date, and seller information. The connector supports filters for price range, condition, date listed, delivery method, availability, sort order, and search radius, offers a pagination cursor for fetching large result sets across chained runs, and can fetch full details with an extra request per listing.
Verified Sep 28, 12:10 AM
$0.002
per marketplace listing
Up to 100 per call. Only pay for results returned; failed calls are refunded.
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"facebook-marketplace-scraper","params":{"query":"bike","location":"Austin, Texas","maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
query | string | required | What to search for on Facebook Marketplace, e.g. 'road bike', 'sofa', 'iPhone 15'. |
location | string | required | City to search around, e.g. 'Austin, Texas' or 'Sydney'. You can also pass exact coordinates as 'lat,lng' (e.g. '30.2677,-97.7475'). |
radiusKm | integer | optional | Search radius around the location, in kilometers. |
minPrice | integer | optional | Only return listings priced at or above this amount (in the local currency). |
maxPrice | integer | optional | Only return listings priced at or below this amount (in the local currency). |
sortBy | string | optional | How to order the search results. |
condition | string | optional | Filter listings by item condition. |
dateListed | string | optional | Only return listings created within this time window. |
deliveryMethod | string | optional | Filter by how the item can be delivered. |
availability | string | optional | Whether to include available listings, sold listings, or both. |
maxItems | integer | optional | Maximum number of listings to return in this run. Set 0 for unlimited (until the search is exhausted or the run times out). Capped at 100 per call. |
itemDetails | boolean | optional | When enabled, each listing is enriched with the full description, exact GPS coordinates, condition, attributes, all photos, and seller info. Slower and uses one extra request per listing. |
pageId | string | optional | Paste NEXT_PAGE_ID from the previous run's Key-value store to fetch the next page of results. |
Each result contains
| Field | Type | Description |
|---|---|---|
id | string | Id |
url | string | Url |
title | string | Title |
price | string | Price |
priceAmount | integer | Price Amount |
currency | null | Currency |
originalPrice | null | Original Price |
city | string | City |
state | string | State |
locationDisplayName | string | Location Display Name |
photoUrl | string | Photo Url |
categoryId | string | Category Id |
isSold | boolean | — |
isPending | boolean | — |
deliveryTypes | array | — |
description | null | — |
creationTime | null | — |
listingDateText | null | — |
availabilityText | null | — |
latitude | null | — |
longitude | null | — |
condition | null | — |
attributes | null | — |
photos | null | — |
seller | null | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Track the price of these 20 grocery items at Woolworths and Coles every week.”
Connect Claude
Web, desktop and mobile. Paste one URL.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://cool-puffin-608.convex.site/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://cool-puffin-608.convex.site/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://cool-puffin-608.convex.site/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://cool-puffin-608.convex.site/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://sourcelane-amber.vercel.app/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"facebook-marketplace-scraper","params":{"query":"bike","location":"Austin, Texas","maxItems":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://cool-puffin-608.convex.site/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "facebook-marketplace-scraper",
"params": {"query":"bike","location":"Austin, Texas","maxItems":5},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…