FAQ Manager Store API – Headless & PWA (Shopware 6)
Note: Search, view counter and the resolution of the shopping experience elements are available from version 2.11.0. The remaining endpoints have existed in earlier versions.
If you run your shop with your own frontend instead of the Shopware storefront – a PWA, a Next.js or Nuxt project – all FAQ content is available through the Store API. The storefront templates are not required.
Every endpoint expects the usual sw-access-key header of your sales channel.
Endpoint overview
| Method | Path | Purpose |
|---|---|---|
| POST | /store-api/faq-categories | Categories including their entries and media |
| POST | /store-api/faq-items | FAQ entries, optionally narrowed down to specific IDs |
| GET | /store-api/faq/page/{pageId} | Single FAQ page including categories |
| GET | /store-api/faq/category/{categoryId} | Single category including entries |
| GET | /store-api/faq/item/{itemId} | Single FAQ entry |
| POST | /store-api/faq/search | Full-text search across questions and answers |
| POST | /store-api/faq/view | Increment the view counter of an entry |
Fetching lists
The two POST endpoints for categories and entries accept the usual Shopware criteria parameters – limit, page, filter, sort and associations.
curl -X POST https://your-shop.com/store-api/faq-categories \
-H "sw-access-key: YOUR-ACCESS-KEY" \
-H "Content-Type: application/json" \
-d '{ "limit": 10 }'Categories are returned including their entries (list) and the related media; entries are sorted by their position.
Individual entries can be narrowed down through ids:
curl -X POST https://your-shop.com/store-api/faq-items \
-H "sw-access-key: YOUR-ACCESS-KEY" \
-H "Content-Type: application/json" \
-d '{ "ids": ["0192...", "0193..."] }'Fetching single records
curl https://your-shop.com/store-api/faq/page/0192abc... \
-H "sw-access-key: YOUR-ACCESS-KEY"If the record does not exist, the route responds with HTTP 404.
Full-text search
The search covers question and answer. The term parameter is required.
curl -X POST https://your-shop.com/store-api/faq/search \
-H "sw-access-key: YOUR-ACCESS-KEY" \
-H "Content-Type: application/json" \
-d '{ "term": "shipping", "limit": 20 }'The route takes care of two things automatically:
- Only active entries are returned.
- Only entries visible in the calling sales channel – through their categories and FAQ pages – are returned.
So there is no need to filter again in your frontend. Additional criteria parameters such as limit, page and sort work as usual.
Incrementing the view counter
To keep the admin statistics populated in a headless setup, have your frontend report the expansion of a question to this route:
curl -X POST https://your-shop.com/store-api/faq/view \
-H "sw-access-key: YOUR-ACCESS-KEY" \
-H "Content-Type: application/json" \
-d '{ "faqid": "0192abc..." }'The response contains the new counter value. See Statistics dashboard for more on the evaluation.
Shopping experience elements
The two CMS elements „FAQ Manager – Categories" and „FAQ Manager – Entries" are resolved server-side. When you fetch a shopping experience through /store-api/cms/{id}, the corresponding slots carry their FAQ data directly in the data field:
- Categories element:
slot.data.categories - Entries element:
slot.data.items
The order matches the selection made in the admin. The content is loaded fresh on every request, so it always reflects the current state of your FAQs including translations.
Note: Before version 2.11.0 these elements returned no FAQ data through the Store API. If you run a headless frontend, an update to 2.11.0 or newer is required.
Resolving SEO URLs
FAQ pages, categories and entries generate their own SEO URLs. In a headless setup they can be resolved through the standard Shopware route:
curl -X POST https://your-shop.com/store-api/seo-url \
-H "sw-access-key: YOUR-ACCESS-KEY" \
-H "Content-Type: application/json" \
-d '{ "filter": [{ "type": "equals", "field": "routeName", "value": "frontend.faq.page" }] }'The route names are frontend.faq.page, frontend.faq.category and frontend.faq.list. See SEO paths for more on the path structure.
Next step: Statistics dashboard →
Was this page helpful?
Support
Rented Plugins (Shopware Store)
For support with plugins rented from the Shopware Store, please open a support ticket in your Shopware account.
Create Shopware Ticket