# Facebook Marketplace API Reference

Canonical: https://monsterapi.co/docs/api/facebook-marketplace

Read the Facebook Marketplace reference. Review parameters, response fields, examples, and current credit prices.

OpenAPI specification: [Facebook](https://monsterapi.co/docs/openapi/platforms/facebook.yaml).

---

Current operation prices: [public catalog](https://monsterapi.co/account/api/v1/public/api-prices). Prices use credits per request.

---

# Facebook: Marketplace nearby listings

`GET /facebook/api/marketplace/browse`

Documentation: https://monsterapi.co/docs/api/facebook#facebook-marketplace-nearby-listings

Operation ID: `facebook_marketplace_browse`

Returns listing summaries around a location. Supply lat and lng together or omit both to let Facebook choose the area; radius and cursor are optional.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `lat` (query, optional): Latitude of the area center in degrees, from -90 to 90. Supply with `lng`. Without `lat` and `lng`, Facebook chooses the area itself, and the area can differ between requests. `coordinates.latitude` in [/marketplace/location/render](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-location-details) gives the latitude of a Marketplace location.

- `lng` (query, optional): Longitude of the area center in degrees, from -180 to 180. Supply with `lat`. `coordinates.longitude` in [/marketplace/location/render](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-location-details) gives the longitude of a Marketplace location.

- `radius` (query, optional): Radius of the area around its center, in kilometers, 0 or more. Without `radius`, Facebook's default radius applies. Facebook can return listings outside the radius. Around San Francisco, with `radius=1`, at least 6 of 26 listings on the first page were 5 to 49 km from the center. All 6 listings on the next page were 5 to 63 km from the center. With `radius=20`, at least 3 of 26 listings on the first page were 27 to 49 km from the center. The distances use the coordinates of each listing or of its Marketplace location. For a strict area, compare the coordinates of each listing with the center. [GET /marketplace/item](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-listing-details) gives the coordinates of one listing. [GET /marketplace/location/render](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-location-details) gives the coordinates of the Marketplace location in `listings[].location_id`. A listing can be several kilometers from the coordinates of its location.

- `cursor` (query, optional): `next_cursor` from this endpoint for the same `lat`, `lng` and `radius`. Pass it unchanged. An absent `next_cursor` means that no continuation is available. A listing can appear on more than one page. In three walks of 3 to 4 pages around San Francisco and London, one page repeated a listing. The second page of a walk around London repeated 1 of its 6 listings from the first page. To count each listing once, deduplicate by `listings[].id`.

## Responses

- 200: Requested information in data and its named fields; unavailable optional values are null.

- 400: A request parameter is invalid.

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: #/components/responses/GatewayForbidden

- 404: The requested object is absent, or Facebook does not show it to logged-out visitors. An empty page of an object that exists does not return `404`.

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: `rate_limited`: Facebook limited the requests or asked a logged-out visitor to sign in. Wait for the seconds in `Retry-After`, then repeat the request. Facebook publishes no numbers for these limits.

Refused at the gateway: the account calls faster than its rate limit allows

- 500: The requested information could not be returned.

- 501: The requested information is unavailable without signing in or is not supported.

- 503: The requested information is temporarily unavailable. Repeat the request later. `code` gives the cause:

- `upstream_error`: no answer came from Facebook, or Facebook answered with a server error. Wait for the seconds in `Retry-After`, then repeat the request.
- `upstream_stale`: the service is renewing its access to this information.
- `no_proxies`: the service cannot get this kind of information at the moment.
- `overloaded`: the service is handling too many requests at the same time. Repeat the request after a short pause, or send fewer requests at the same time.

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/facebook/api/marketplace/browse' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Facebook: Marketplace listing details

`GET /facebook/api/marketplace/item`

Documentation: https://monsterapi.co/docs/api/facebook#facebook-marketplace-listing-details

Operation ID: `facebook_marketplace_item`

Returns listing identity, title, description, price, seller, location and primary photo when available. Pass id.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `id` (query, required): Numeric listing ID.

## Responses

- 200: Requested information in data and its named fields; unavailable optional values are null.

- 400: A request parameter is invalid.

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: #/components/responses/GatewayForbidden

- 404: The requested object is absent, or Facebook does not show it to logged-out visitors. An empty page of an object that exists does not return `404`.

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: `rate_limited`: Facebook limited the requests or asked a logged-out visitor to sign in. Wait for the seconds in `Retry-After`, then repeat the request. Facebook publishes no numbers for these limits.

Refused at the gateway: the account calls faster than its rate limit allows

- 500: The requested information could not be returned.

- 501: The requested information is unavailable without signing in or is not supported.

- 503: The requested information is temporarily unavailable. Repeat the request later. `code` gives the cause:

- `upstream_error`: no answer came from Facebook, or Facebook answered with a server error. Wait for the seconds in `Retry-After`, then repeat the request.
- `upstream_stale`: the service is renewing its access to this information.
- `no_proxies`: the service cannot get this kind of information at the moment.
- `overloaded`: the service is handling too many requests at the same time. Repeat the request after a short pause, or send fewer requests at the same time.

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/facebook/api/marketplace/item' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Facebook: Marketplace listing media

`GET /facebook/api/marketplace/item/media`

Documentation: https://monsterapi.co/docs/api/facebook#facebook-marketplace-listing-media

Operation ID: `facebook_marketplace_item_media`

Returns photos and videos for a listing. Pass id.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `id` (query, required): Numeric listing ID.

## Responses

- 200: Requested information in data and its named fields; unavailable optional values are null.

- 400: A request parameter is invalid.

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: #/components/responses/GatewayForbidden

- 404: The requested object is absent, or Facebook does not show it to logged-out visitors. An empty page of an object that exists does not return `404`.

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: `rate_limited`: Facebook limited the requests or asked a logged-out visitor to sign in. Wait for the seconds in `Retry-After`, then repeat the request. Facebook publishes no numbers for these limits.

Refused at the gateway: the account calls faster than its rate limit allows

- 500: The requested information could not be returned.

- 501: The requested information is unavailable without signing in or is not supported.

- 503: The requested information is temporarily unavailable. Repeat the request later. `code` gives the cause:

- `upstream_error`: no answer came from Facebook, or Facebook answered with a server error. Wait for the seconds in `Retry-After`, then repeat the request.
- `upstream_stale`: the service is renewing its access to this information.
- `no_proxies`: the service cannot get this kind of information at the moment.
- `overloaded`: the service is handling too many requests at the same time. Repeat the request after a short pause, or send fewer requests at the same time.

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/facebook/api/marketplace/item/media' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Facebook: Marketplace location details

`GET /facebook/api/marketplace/location/render`

Documentation: https://monsterapi.co/docs/api/facebook#facebook-marketplace-location-details

Operation ID: `facebook_marketplace_location_render`

Returns location identity, name, city and coordinates. Pass id.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `id` (query, required): Numeric Marketplace location ID. `listings[].location_id` in [GET /marketplace/search](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-listing-search) and [GET /marketplace/browse](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-nearby-listings) gives the ID of the location named in `listings[].location`. An ID that names no Marketplace location returns `not_found`. On 2026-10-20, an ID that does not exist, a page profile ID and a group ID each returned `not_found`.

## Responses

- 200: Requested information; unavailable optional values are null.

- 400: A request parameter is invalid.

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: #/components/responses/GatewayForbidden

- 404: The requested object is absent, or Facebook does not show it to logged-out visitors. An empty page of an object that exists does not return `404`.

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: `rate_limited`: Facebook limited the requests or asked a logged-out visitor to sign in. Wait for the seconds in `Retry-After`, then repeat the request. Facebook publishes no numbers for these limits.

Refused at the gateway: the account calls faster than its rate limit allows

- 500: The requested information could not be returned.

- 501: The requested information is unavailable without signing in or is not supported.

- 503: The requested information is temporarily unavailable. Repeat the request later. `code` gives the cause:

- `upstream_error`: no answer came from Facebook, or Facebook answered with a server error. Wait for the seconds in `Retry-After`, then repeat the request.
- `upstream_stale`: the service is renewing its access to this information.
- `no_proxies`: the service cannot get this kind of information at the moment.
- `overloaded`: the service is handling too many requests at the same time. Repeat the request after a short pause, or send fewer requests at the same time.

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/facebook/api/marketplace/location/render' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Facebook: Marketplace listing search

`GET /facebook/api/marketplace/search`

Documentation: https://monsterapi.co/docs/api/facebook#facebook-marketplace-listing-search

Operation ID: `facebook_marketplace_search`

Returns listing summaries matching a keyword or category and optional filters. Give exactly one of q and category; lat and lng together set the area center; cursor continues the results.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `q` (query, optional): Listing search term. Give exactly one of `q` and `category`. Up to 256 characters of visible text and spaces. Tabs, line breaks and invisible characters return `bad_request`.

- `category` (query, optional): Listing category: the last path segment of a Facebook Marketplace category address, such as `vehicles` in `https://www.facebook.com/marketplace/category/vehicles/`. Give exactly one of `q` and `category`. The Facebook Marketplace navigation lists categories for a logged-out visitor, and this list can change. On 2026-10-20, it listed `apparel`, `classifieds`, `electronics`, `entertainment`, `family`, `free`, `garden`, `hobbies`, `home`, `home-improvements`, `instruments`, `office-supplies`, `pets`, `propertyforsale`, `propertyrentals`, `sports`, `toys` and `vehicles`. A listed category that Facebook shows a logged-out visitor as unavailable returns `requires_auth`. On 2026-10-20, this was `propertyforsale`. The category of each listing is `marketplace_listing_category_id` in `data.marketplace_search.feed_units.nodes[].listing`. The service also accepts a value that the navigation does not list. On 2026-10-20, `bicycles` returned bicycles and `furniture` returned furniture, and all these listings carried the category ID of `electronics`. An unknown value returned no listings. `propertyrentals` returns rentals together with other listings. Of 24 listings in each search, Facebook put 13 to 19 around San Francisco and 14 to 16 around London in its rental category. The other listings were goods such as sofas, services such as handyman work, and rentals that Facebook put in other categories.

- `lat` (query, optional): Latitude of the area center in degrees, from -90 to 90. Supply with `lng`. Without `lat` and `lng`, Facebook chooses the area itself, and the area can differ between requests. `coordinates.latitude` in [/marketplace/location/render](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-location-details) gives the latitude of a Marketplace location.

- `lng` (query, optional): Longitude of the area center in degrees, from -180 to 180. Supply with `lat`. `coordinates.longitude` in [/marketplace/location/render](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-location-details) gives the longitude of a Marketplace location.

- `min_price` (query, optional): Lowest price as Facebook writes `minPrice` in its Marketplace address: a decimal number without a sign that is a whole number of hundredths, such as `50`, `49.99` or `1.5e+06`, from 0 to 2147483647. The amount is in the currency Facebook uses for the search, such as US dollars for a search in the United States, and is not converted.

- `max_price` (query, optional): Highest price, written and read like `min_price` and not below it. From 0 to 2147483647.

- `radius` (query, optional): Radius of the area around its center, in kilometers, 0 or more. Without `radius`, Facebook's default radius applies. Facebook can return listings outside the radius. With `q`, a search with `radius=1` returned a listing 135 km from the center. With `category`, the result depends on the category. Around San Francisco and London, `toys` stayed near the radius. With `radius=1`, all `toys` listings were in the city of the center. With `radius=20` and `radius=100`, the farthest measured Marketplace location of a `toys` listing was 19 and 91 km from San Francisco. Around London, the farthest measured location was 22 and 91 km from the center. With `radius=1` around San Francisco, all `home` and `electronics` listings were in San Francisco too. `vehicles`, `classifieds`, `office-supplies` and `pets` did not stay near the radius. With `radius=1`, `vehicles` returned a listing 62 km from each center. In two measurements around San Francisco, 11 and 12 of the 13 `vehicles` listings with `radius=1` were also in the results with `radius=100`. With `radius=1`, `classifieds` returned a listing 158 km from San Francisco and a listing 166 km from London. With `radius=1`, `office-supplies` and `pets` returned listings 140 km and 87 km from San Francisco. The distances use the coordinates of each listing or of its Marketplace location. A listing can be several kilometers from the coordinates of its location. For a strict area, compare the coordinates of each listing with the center. [GET /marketplace/location/render](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-location-details) gives the coordinates of the Marketplace location in `listings[].location_id`, and [GET /marketplace/item](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-listing-details) gives the coordinates of one listing.

- `days` (query, optional): Listing age limit in whole days from 0 to 365, written as Facebook writes `daysSinceListed` in its Marketplace address. With `q`, Facebook applies this filter by its own day boundary, which is not midnight UTC. Facebook can also add older listings to the results: a search with `days=1` returned listings 13 days old. With `category`, the result depends on the category. With `days=1` around San Francisco, `vehicles` returned 15 listings 0.1 to 5.2 days old, and `toys` returned listings up to 210 days old. For a strict age window, filter by `listings[].created_time` or `listings[].created_at` of each listing.

- `condition` (query, optional): Item condition, written as Facebook writes `itemCondition` in its Marketplace address, such as `new` or `used_like_new`. The condition of a listing is the `value` of the `Condition` entry of `data.marketplace_product_details_page.target.attribute_data` in [/marketplace/item](https://monsterapi.co/docs/api/facebook-marketplace#facebook-marketplace-listing-details).

- `cursor` (query, optional): `next_cursor` from this endpoint for the same `q` or `category` and the same filters. Pass it unchanged. An absent `next_cursor` means that no continuation is available. A listing can appear on more than one page. In six walks of three pages by category around San Francisco and London, 9 of the 402 returned listings repeated a listing of an earlier page. To count each listing once, deduplicate by `listings[].id`.

## Responses

- 200: Requested information in data and its named fields; unavailable optional values are null.

- 400: A request parameter is invalid.

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: #/components/responses/GatewayUnauthorized

- 402: #/components/responses/GatewayPaymentRequired

- 403: #/components/responses/GatewayForbidden

- 404: The requested object is absent, or Facebook does not show it to logged-out visitors. An empty page of an object that exists does not return `404`.

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: #/components/responses/GatewayConflict

- 429: `rate_limited`: Facebook limited the requests or asked a logged-out visitor to sign in. Wait for the seconds in `Retry-After`, then repeat the request. Facebook publishes no numbers for these limits.

Refused at the gateway: the account calls faster than its rate limit allows

- 500: The requested information could not be returned.

- 501: The requested information is unavailable without signing in or is not supported.

- 503: The requested information is temporarily unavailable. Repeat the request later. `code` gives the cause:

- `upstream_error`: no answer came from Facebook, or Facebook answered with a server error. Wait for the seconds in `Retry-After`, then repeat the request.
- `upstream_stale`: the service is renewing its access to this information.
- `no_proxies`: the service cannot get this kind of information at the moment.
- `overloaded`: the service is handling too many requests at the same time. Repeat the request after a short pause, or send fewer requests at the same time.

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/facebook/api/marketplace/search' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```
