Meta
List the company's Meta catalog listings
Lists every Meta catalog listing on the company’s Meta connection, newest first, including drafts, failed publishes, and deleted rows. Each listing carries its publish status, the rolled-up audit_status, and the raw per-surface review values, so you can see why a product is not showing on Facebook, Instagram, or WhatsApp. Requires a company admin Bearer token with the products.view permission. Cursor-paginated: pass page[limit] (default 25, max 100) and follow meta.pagination.next_cursor with page[cursor]. Returns 404 when the company has never connected Meta.
GET
/
api
/
v202506
/
meta
/
catalog_listings
List the company's Meta catalog listings
curl --request GET \
--url https://api.fluid.app/api/v202506/meta/catalog_listings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202506/meta/catalog_listings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202506/meta/catalog_listings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v202506/meta/catalog_listings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202506/meta/catalog_listings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/v202506/meta/catalog_listings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202506/meta/catalog_listings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"catalog_listings": [
{
"id": 90412,
"product_id": 48213,
"product_title": "Wireless Office Headset",
"product_retailer_id": "01923f4a-7c2e-7b91-a5d3-6e8f0b4c2a17",
"marketplace_review_status": null,
"shops_review_status": "approved",
"whatsapp_review_status": "approved",
"instagram_review_status": "approved",
"status": "active",
"audit_status": "approved",
"last_published_at": "2026-09-15T10:04:12Z",
"last_synced_at": "2026-09-29T06:30:00Z",
"last_error": null
},
{
"id": 90407,
"product_id": 48219,
"product_title": "Standing Desk Converter",
"product_retailer_id": "01923f4a-6b1d-7a80-94c2-5d7e9a3b1f06",
"marketplace_review_status": null,
"shops_review_status": "pending",
"whatsapp_review_status": "pending",
"instagram_review_status": "pending",
"status": "pending",
"audit_status": "auditing",
"last_published_at": "2026-09-15T10:04:12Z",
"last_synced_at": null,
"last_error": null
}
],
"status": 200,
"meta": {
"request_id": "7c3a9e51-4b2d-4f86-a0e7-2d9b6f1c8a35",
"timestamp": "2026-09-30T14:18:44Z",
"pagination": {
"cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wOS0xNVQxMDowMToyMloiLCJpZCI6OTA0MTJ9",
"limit": 25,
"prev_cursor": null,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wOS0xNFQxNzo0MjowOVoiLCJpZCI6OTA0MDd9"
}
}
}{
"message": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}Authorizations
Query Parameters
⌘I
List the company's Meta catalog listings
curl --request GET \
--url https://api.fluid.app/api/v202506/meta/catalog_listings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202506/meta/catalog_listings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202506/meta/catalog_listings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v202506/meta/catalog_listings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202506/meta/catalog_listings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/v202506/meta/catalog_listings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202506/meta/catalog_listings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"catalog_listings": [
{
"id": 90412,
"product_id": 48213,
"product_title": "Wireless Office Headset",
"product_retailer_id": "01923f4a-7c2e-7b91-a5d3-6e8f0b4c2a17",
"marketplace_review_status": null,
"shops_review_status": "approved",
"whatsapp_review_status": "approved",
"instagram_review_status": "approved",
"status": "active",
"audit_status": "approved",
"last_published_at": "2026-09-15T10:04:12Z",
"last_synced_at": "2026-09-29T06:30:00Z",
"last_error": null
},
{
"id": 90407,
"product_id": 48219,
"product_title": "Standing Desk Converter",
"product_retailer_id": "01923f4a-6b1d-7a80-94c2-5d7e9a3b1f06",
"marketplace_review_status": null,
"shops_review_status": "pending",
"whatsapp_review_status": "pending",
"instagram_review_status": "pending",
"status": "pending",
"audit_status": "auditing",
"last_published_at": "2026-09-15T10:04:12Z",
"last_synced_at": null,
"last_error": null
}
],
"status": 200,
"meta": {
"request_id": "7c3a9e51-4b2d-4f86-a0e7-2d9b6f1c8a35",
"timestamp": "2026-09-30T14:18:44Z",
"pagination": {
"cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wOS0xNVQxMDowMToyMloiLCJpZCI6OTA0MTJ9",
"limit": 25,
"prev_cursor": null,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wOS0xNFQxNzo0MjowOVoiLCJpZCI6OTA0MDd9"
}
}
}{
"message": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}