M masamenu.tr
🧩 Widgets for Your Website

🧑‍💻 Headless Storefront

Data manifest, public JSON, guest API and webhooks for your own frontend

Documentation

Headless storefront

The usual paths are our storefront or widgets on your own site. But when the site is built by your own developer or agency and the frontend must be entirely yours, there is a third option: you take the data and the order flow from us and build everything else on any stack you like.

Reading the data needs no keys and no authentication: whatever is public on the storefront is public as JSON.

Where to enable and configure it: Marketing → “My Website” → the “Headless storefront” card. It also shows your location's manifest URL and the technical documentation.


The storefront.json manifest

The only address your developer needs:

https://cdn.masamenu.tr/{DOMAIN}/storefront.json

Everything else is inside it:

Block What it holds
location Identifier, slug, vertical (restaurant, shop, hotel, salon)
languages Default language and the list of enabled ones
currency Currency code and symbol
cdnBase + data Paths to the menu, profile, pages, collections and reviews
catalog Catalogue mode: everything in files, or per-item files plus a catalogue API
images Image base, path template and available sizes
api Guest API endpoints, the OpenAPI spec and the MCP endpoint
publishId, publishedAt Publication identifier, changed on every data regeneration
digests File digests, so caches can be invalidated surgically

The contract is versioned (contractVersion) and published with JSON schemas you can validate against and generate types from. Unknown fields must be ignored: the contract grows without breaking compatibility.


Data and images

Everything the storefront renders is available as files: menu and catalogue per language, the location profile (name, address, opening hours, contacts, settings), pages and articles, collections and reviews.

For large catalogues the manifest switches to api mode: the menu file holds a lightweight selection and full item cards are fetched per file or through the catalogue API with filters and subcategories.

Images come from our CDN in several sizes, following the template in the manifest; when a photo is replaced the path is versioned, so you can cache aggressively.


Orders and the guest API

Order placement, order status, search and bookings go through the guest API: no authentication, the address comes from the manifest, and the specification is OpenAPI 3.1. There is a separate commerce surface for coupons, delivery quotes, forms and subscriptions. See Guest API for AI agents — it is the same interface.

An order created by your site lands in the shared “Orders” section and follows the usual rules: statuses, kitchen, couriers, receipts, notifications.


Change webhooks

Instead of polling the CDN, subscribe to events:

  • menu.updated — the menu or catalogue has been regenerated;
  • profile.updated — the location profile changed.

The payload carries the publishId, which is convenient for rebuilding static pages or busting an ISR cache. Every request is signed with HMAC-SHA256 using your secret — verify the signature before rebuilding anything. Up to five endpoints per location, with a retry on failure.

Webhooks are configured in the “Headless storefront” card and are available on paid plans; reading the data is always available.


Getting started

  1. Open Marketing → “My Website” → “Headless storefront” and copy the manifest URL.
  2. Fetch the manifest and, from it, the menu and profile data. No keys are needed at this stage.
  3. Build the pages with your framework of choice; use the guest API for orders.
  4. Add a webhook so the site rebuilds when data actually changes.

The full technical description is behind the “Documentation” link in the same card, together with a working storefront example and an llms.txt for your developer's AI assistants.


Related topics


FAQ

Do I pay for reading the data? No. The public JSON is available on any plan — these are the same files our own storefront uses. Webhooks are the paid part.

What about SEO? It is entirely on your side: you build the pages and control the markup. The data needed for structured data (JSON-LD) is in the contract.

Can I combine this with your storefront? Yes. Our storefront, the widgets and your own site all work from the same data and the same order flow.