Setting the file. One moment.
Subchapter 10.105
references/sites/read-site-context.mdMarkdown4 KBView on GitHub
Returns a site’s name, URL, status, locale/region, and all installed apps with human-readable display names.
Endpoint: POST https://www.wixapis.com/_api/dynamic-context/v1/dynamic-context/markdown
Returns { "markdown": "..." }.
curl -X POST \
'https://www.wixapis.com/_api/dynamic-context/v1/dynamic-context/markdown' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{"siteId": "<metaSiteId>"}'Response:
## 1. Acme Store
**ID**: `<metaSiteId>`
**URL**: [https://example.wixsite.com/acme](https://example.wixsite.com/acme)
**Status**: Published
**Editor Type**: Editorless
**Created**: Aug 14, 2026, 05:21 · **Updated**: Aug 17, 2026, 20:44
**Velo**: Enabled
### Properties
**Locale & Region**
- Language: **en**
- Country: **US**
- Timezone: **America/New_York**
- Currency: **USD**
### Apps
- **Wix Stores** (ID: `215238eb-22a5-4c36-9e7b-e7c08025e04e`) — Catalog app version: **V3**
- **Wix Bookings** (ID: `13d21c63-b5ec-5912-8397-c3a5ddb27a97`)
- **Wix Blog** (ID: `14bcded7-0066-7c35-14d7-466cb3f09103`)curl -X POST \
'https://www.wixapis.com/_api/dynamic-context/v1/dynamic-context/markdown' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{}'_Showing 10 sites (more available)_ — call again with a specific siteId.Endpoint: POST https://www.wixapis.com/_api/dynamic-context/v1/dynamic-context
Same request shape. installedApps contains raw appId UUIDs — extract only what you need:
const res = await fetch(
"https://www.wixapis.com/_api/dynamic-context/v1/dynamic-context",
{
method: "POST",
headers: { Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json" },
body: JSON.stringify({ siteId: metaSiteId }),
}
);
const { sites } = await res.json();
const site = sites[0];
const KNOWN_APPS = {
stores: "215238eb-22a5-4c36-9e7b-e7c08025e04e",
bookings: "13d21c63-b5ec-5912-8397-c3a5ddb27a97",
blog: "14bcded7-0066-7c35-14d7-466cb3f09103",
events: "140603ad-af8d-84a5-2c80-a0f60cb47351",
pricingPlans: "1522827f-c56c-a5c9-2ac9-00f9e6ae12d3",
restaurants: "13e8d036-5516-6f75-e025-2aca3b5d7930",
};
const appById = Object.fromEntries(
(site.installedApps ?? []).map((a) => [a.appId, a])
);
const context = {
id: site.id,
name: site.displayName,
url: site.url,
currency: site.properties?.paymentCurrency,
locale: `${site.properties?.locale?.languageCode}-${site.properties?.locale?.country}`,
timezone: site.properties?.timeZone,
hasStores: !!appById[KNOWN_APPS.stores],
storesCatalogV: appById[KNOWN_APPS.stores]?.catalogVersion ?? null, // "V3" | "V1" | null
hasBookings: !!appById[KNOWN_APPS.bookings],
hasBlog: !!appById[KNOWN_APPS.blog],
hasEvents: !!appById[KNOWN_APPS.events],
hasPricingPlans: !!appById[KNOWN_APPS.pricingPlans],
hasRestaurants: !!appById[KNOWN_APPS.restaurants],
};