Skip to main content
The Storefront API organizes products into collections. There is no standalone “List Products” endpoint—instead, you fetch products through collections.

The all Collection

Every shop has a built-in all collection that contains all public products. This is the easiest way to get all products:
// Get all products
const res = await fetch(
  "https://storefront-api.fourthwall.com/v1/collections/all/products?storefront_token=YOUR_TOKEN"
);
const { results, paging } = await res.json();

Common Patterns

Get all products (paginated)

async function getAllProducts(token) {
  const products = [];
  let page = 0;
  let hasMore = true;

  while (hasMore) {
    const res = await fetch(
      `https://storefront-api.fourthwall.com/v1/collections/all/products?storefront_token=${token}&page=${page}&size=50`
    );
    const data = await res.json();
    products.push(...data.results);
    hasMore = data.paging.hasNextPage;
    page++;
  }

  return products;
}

Get products from a specific collection

const res = await fetch(
  "https://storefront-api.fourthwall.com/v1/collections/merch/products?storefront_token=YOUR_TOKEN"
);

Get a single product by slug

Use this when you already know the product slug (e.g., from a URL like /products/cool-t-shirt):
const res = await fetch(
  "https://storefront-api.fourthwall.com/v1/products/cool-t-shirt?storefront_token=YOUR_TOKEN"
);

Why Collections?

Collections let you:
  • Organize products into categories (e.g., “Apparel”, “Accessories”)
  • Control which products appear on your storefront
  • Create featured or seasonal groupings
The all collection is always available as a catch-all.