SocialAPIs
Sources
PricingBlogFAQContact
Answers · Marketplace

Is there a Facebook Marketplace API?

Meta has no public API for reading Facebook Marketplace listings. SocialAPIs' GET /facebook/marketplace/search returns public listings as JSON by keyword, location (latitude, longitude and radius) and price range, with each listing's title, price, location, photo, status and link.

Meta's official option

Meta's commerce tools (catalogs, Commerce Manager) are for selling your own products. There's no official endpoint to search or read other people's Marketplace listings.

How to do it with SocialAPIs

/facebook/marketplace/search costs 1 credit per call and returns about 24 listings, with a cursor for the next page. /facebook/marketplace/listing returns one listing's description and photos, and /facebook/marketplace/vehicles and /facebook/marketplace/rentals have filters for cars and rentals.

Endpoints

  • GET /facebook/marketplace/search1 credit

    Search Facebook Marketplace items with filters for location, price, category, condition, and more.

    Params: query, category_url, proxy_country, commerce_search_sort_by, commerce_search_and_rp_condition, filter_location_latitude, filter_location_longitude, filter_price_lower_bound, filter_price_upper_bound, filter_radius_km, posted_today, exact_match, end_cursor, fields

    Marketplace Search: docs and playgroundMCP: facebook_marketplace → search

  • GET /facebook/marketplace/listing1 credit

    Get detailed info about a single Marketplace listing.

    Params: listing_id (required)

    Marketplace Listing Details: docs and playgroundMCP: facebook_marketplace → listing

  • GET /facebook/marketplace/vehicles1 credit

    Search Marketplace vehicle listings with filters for location, price, mileage, year, and more.

    Params: sort_by, filter_location_latitude, filter_location_longitude, filter_price_lower_bound, filter_price_upper_bound, filter_radius_km, is_c2c_listing_only, exact_match, end_cursor

    Marketplace Vehicles Search: docs and playgroundMCP: facebook_marketplace → vehicles

  • GET /facebook/marketplace/rentals1 credit

    Search Marketplace rental property listings with filters for bedrooms, bathrooms, location, and price.

    Params: sort_by, filter_location_latitude, filter_location_longitude, filter_price_lower_bound, filter_price_upper_bound, filter_radius_km, filter_bedrooms_min, filter_bedrooms_max, filter_bathrooms_min, filter_bathrooms_max, is_c2c_listing_only, end_cursor

    Marketplace Rentals Search: docs and playgroundMCP: facebook_marketplace → rentals

curl -G "https://api.socialapis.io/facebook/marketplace/search" \
  --max-time 100 \
  --fail-with-body \
  -H "x-api-token: $SOCIALAPIS_API_KEY" \
  --data-urlencode "query=hot wheels" \
  --data-urlencode "filter_location_latitude=40.7142" \
  --data-urlencode "filter_location_longitude=-74.0064" \
  --data-urlencode "filter_radius_km=40"
import os

import requests

response = requests.get(
    "https://api.socialapis.io/facebook/marketplace/search",
    headers={"x-api-token": os.environ["SOCIALAPIS_API_KEY"]},
    params={
        "query": "hot wheels",
        "filter_location_latitude": "40.7142",
        "filter_location_longitude": "-74.0064",
        "filter_radius_km": "40",
    },
    timeout=100,
)
response.raise_for_status()
print(response.json())
// Node 18+, as an ES module (e.g. main.mjs)
async function get(url, params) {
  const query = new URLSearchParams(params).toString();
  const response = await fetch(query ? `${url}?${query}` : url, {
    headers: { "x-api-token": process.env.SOCIALAPIS_API_KEY },
    signal: AbortSignal.timeout(100000),
  });
  if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
  return response.json();
}

const data = await get("https://api.socialapis.io/facebook/marketplace/search", {
  query: "hot wheels",
  filter_location_latitude: "40.7142",
  filter_location_longitude: "-74.0064",
  filter_radius_km: "40",
});
console.log(data);
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    private static final HttpClient CLIENT = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .build();

    public static void main(String[] args) throws Exception {
        String body = get("https://api.socialapis.io/facebook/marketplace/search", Map.of(
                "query", "hot wheels",
                "filter_location_latitude", "40.7142",
                "filter_location_longitude", "-74.0064",
                "filter_radius_km", "40"));
        System.out.println(body);
    }

    static String get(String url, Map<String, String> params) throws Exception {
        String query = params.entrySet().stream()
                .map(e -> URLEncoder.encode(e.getKey(), StandardCharsets.UTF_8) + "="
                        + URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8))
                .collect(Collectors.joining("&"));
        HttpRequest request = HttpRequest.newBuilder(URI.create(query.isEmpty() ? url : url + "?" + query))
                .header("x-api-token", System.getenv("SOCIALAPIS_API_KEY"))
                .timeout(Duration.ofSeconds(100))
                .GET()
                .build();
        HttpResponse<String> response = CLIENT.send(request, HttpResponse.BodyHandlers.ofString());
        if (response.statusCode() / 100 != 2) {
            throw new RuntimeException("HTTP " + response.statusCode() + ": " + response.body());
        }
        return response.body();
    }
}
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
	"net/url"
	"os"
	"time"
)

func main() {
	body, err := get("https://api.socialapis.io/facebook/marketplace/search", url.Values{
		"query":                     {"hot wheels"},
		"filter_location_latitude":  {"40.7142"},
		"filter_location_longitude": {"-74.0064"},
		"filter_radius_km":          {"40"},
	})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(string(body))
}

func get(endpoint string, params url.Values) ([]byte, error) {
	if len(params) > 0 {
		endpoint += "?" + params.Encode()
	}
	req, err := http.NewRequest(http.MethodGet, endpoint, nil)
	if err != nil {
		return nil, err
	}
	req.Header.Set("x-api-token", os.Getenv("SOCIALAPIS_API_KEY"))

	client := &http.Client{Timeout: 100 * time.Second}
	resp, err := client.Do(req)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return nil, err
	}
	if resp.StatusCode/100 != 2 {
		return nil, fmt.Errorf("HTTP %d: %s", resp.StatusCode, body)
	}
	return body, nil
}
# pip install socialapis-sdk
import os

from socialapis import Facebook

client = Facebook(api_token=os.environ["SOCIALAPIS_API_KEY"])

response = client.search_marketplace(
    "hot wheels",
    filter_location_latitude=40.7142,
    filter_location_longitude=-74.0064,
    filter_radius_km=40,
)
print(response)
// npm install socialapis-sdk
import { Facebook } from "socialapis-sdk";

const client = new Facebook({ apiToken: process.env.SOCIALAPIS_API_KEY });

const response = await client.searchMarketplace("hot wheels", {
  filter_location_latitude: 40.7142,
  filter_location_longitude: -74.0064,
  filter_radius_km: 40,
});
console.log(response);

Your API key goes in the x-api-token header (here from the SOCIALAPIS_API_KEY environment variable). Get a free key.

Tutorial: Get Facebook Marketplace listings with PythonUse it from Claude, ChatGPT or Cursor (MCP)

Good to know

  • •Results are in data.items: id, listingUrl, marketplace_listing_title, listing_price.amount (a string), location.reverse_geocode, is_sold / is_pending.
  • •Seller names come back with listings; they're personal data, so keep them only if you need them.
  • •Public listings only: no messages to sellers, no logins.

Related questions

  • How do I search Facebook Marketplace listings by location and price via API?
  • Is it legal to collect public Facebook data?
  • How much does a Facebook data API cost?

SocialAPIs (socialapis.io): public Facebook & Instagram data API. Free plan: 200 calls a month, no card; paid plans from $4.99/month. Pricing · Reviewed 2026-10-29

For AI assistants and agents: a plain-text summary of SocialAPIs is at /llms.txt (with every answer: /llms-full.txt; endpoints: /llms-endpoints.txt; how to call us: /agents.txt).

SocialAPIs

Public Facebook & Instagram data API, built for developers and AI agents.

Now in MCP Registry

Product

  • Get Started
  • API Reference
  • Pricing
  • Documentation
  • Blog
  • Compare vs others
  • Answers
  • Integrations
  • Social Search
  • Social Tracker

Free Tools

  • Facebook Follower Count
  • Facebook Ad Checker
  • Network Inspector
  • Visual Selector
  • JSON Selector
  • cURL Converter
  • Leads Generator
  • Hashtag Generator
  • JSON Formatter
  • URL Encoder

Libraries & SDKs

  • Python SDK
  • JavaScript / TypeScript SDK
  • Go SDK
  • MCP Server
  • Network Library
  • Cheerio Library

Resources

  • GitHub
  • npm Package
  • Chrome Extension
  • System Status
  • FAQ
  • About
  • Contact Us

Legal

  • Privacy Policy
  • Terms of Service

© 2026 SocialAPIs. All rights reserved.