> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cevoid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Storefront API

> Display public posts, reviews, and ratings in custom storefronts.

Use the Storefront API to display public posts, reviews, and ratings in custom storefronts. Authenticate with a publishable key; scopes are not required.

```bash theme={"system"}
curl "https://api.widget.cevoid.com/v1/posts?market=mar_sweden&product_ref=gid%3A%2F%2Fshopify%2FProduct%2F123&limit=12" \
  -H "Authorization: Bearer ${CEVOID_PUBLISHABLE_KEY}"
```

<CardGroup cols={2}>
  <Card title="Posts" icon="images" href="/storefront-rendering-api/storefront-ugc/list-posts">
    Fetch posts for product pages, community walls, and galleries.
  </Card>

  <Card title="Product reviews" icon="star" href="/storefront-rendering-api/reviews/list-product-reviews">
    Read reviews with market-specific text and optional originals.
  </Card>

  <Card title="Company reviews" icon="star" href="/storefront-rendering-api/reviews/list-company-reviews">
    Read company reviews and their response fields.
  </Card>

  <Card title="Rich Snippets" icon="brackets-curly" href="/storefront-rendering-api/storefront-rendering/render-a-product-rich-snippet">
    Fetch product ratings markup and matching JSON-LD.
  </Card>
</CardGroup>

For implementation steps, see [Custom UGC experiences](../developer-docs/custom-ugc) or the [Rich Snippets guide](./rich-snippets).

## Caching

Successful post and Rich Snippet responses use these cache durations:

* Browsers can cache a response for 60 seconds.
* Shared CDNs can cache a response for five minutes.
* CDNs can serve a stale response for five more minutes while refreshing it.

The complete request URL and publishable key identify the cached response. Rich Snippets also vary by referrer because the page URL can select a product or market.

Error responses are not publicly cached. Content removed in Cevoid can remain in a shared cache for up to ten minutes.

Review responses use `Cache-Control: no-store`, including ratings and summaries.

## Rate limits

All Storefront endpoints share one limit per publishable key: **20 requests per second**, with bursts of up to **40 requests**. Each request counts once, regardless of page size.

For example, after a burst of 40 requests uses the available allowance, one second without requests restores room for 20 more. Two seconds restores the full allowance of 40.

When the allowance runs out, the API returns `429`. Wait the number of seconds in `Retry-After` before retrying. `RateLimit-Limit` is the burst allowance (40), `RateLimit-Remaining` is the available allowance, and `RateLimit-Reset` is the retry delay (0 on successful requests).

Only requests that reach the API count. Responses served directly from a CDN cache do not.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.