Facebook Marketplace · Guide

How to run a Facebook Marketplace location search

TL;DR
To run a Facebook Marketplace location search, sign up for a free Captapi key, then send one GET request to /v1/facebook/marketplace-location-search with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Disambiguate city names into Marketplace hubs — id + lat/lng. Flat 2 credits.

How to run a Facebook Marketplace location search (step by step)

  1. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 2

    Call the Facebook Marketplace Location Search API

    Send an authenticated GET request to /v1/facebook/marketplace-location-search with your input. No OAuth, no scraping setup.

  3. 3

    Read the JSON response

    Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.

Code example

curl "https://api.captapi.com/v1/facebook/marketplace-location-search?q=Austin" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "query": "Austin",
    "totalReturned": 3,
    "locations": [
      {
        "id": "109791499039942",
        "cityPageId": "109791499039942",
        "slug": "austin",
        "name": "Austin, TX",
        "city": "Austin",
        "state": "TX",
        "latitude": 30.2677,
        "longitude": -97.7475
      },
      {
        "slug": "austin-minnesota",
        "name": "Austin, MN",
        "city": "Austin",
        "state": "MN",
        "latitude": 43.6666,
        "longitude": -92.9746
      }
    ]
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
qstring YesCity/place query. Bare names like 'Austin' may return multiple candidates (TX/MN/IN); include a state for a single hit (e.g. 'Austin, TX').
limitintegerNoMax items to return (default 10, max 50). Flat 2 credits per call.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.

Frequently asked questions

What does the Facebook Marketplace Location Search API do?

The Facebook Marketplace Location Search API lets you search and return matching results from a public Facebook Marketplace query using one GET request to /v1/facebook/marketplace-location-search. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Facebook Marketplace Location Search API cost?

Each successful call costs 2 credits. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a Facebook Marketplace API key or OAuth?

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

When should I call this instead of marketplace-search?

marketplace-search already accepts a city/place name with no lat/lng required. Use location search when the name is ambiguous (Austin TX vs Austin MN) or you need Facebook's cityPageId / coordinates before searching. Otherwise skip it — it is an optional 2-credit geocode/disambiguation step.

What is id on a location row?

Facebook's Marketplace city_page.id — the same value marketplace-search listings expose as cityPageId. Join with location.id === listing.cityPageId. It is not a fabricated "city|city|state" string, and it is not duplicated as cityPageId on the location row. When Facebook does not expose that id, the field is omitted and idResolved is false — pass name or slug to marketplace-search instead.

Why is id missing on some Austin / geocode rows?

id is Facebook's city_page.id, which we only have for some table hubs (Austin TX) and when a hub page exposes it. idResolved=false means that join is not available; the row is still a valid marketplace-search location via name or slug.

Is the Facebook Marketplace Location Search API suitable for production use?

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

Ready to run a Facebook Marketplace location search?

Start free with 100 credits — no credit card required.

Get your free API key