← Files WixARCHIVED FILE

skills/wix-manage/references/sites/create-site-from-template.md

4.96 KB · Oct 4, 2026 · 12:02 UTC

↓ Download file

---
name: "Create Site from Template"
description: Creates new Wix sites from templates using account-level APIs. Covers template search, site creation, headless site setup, OAuth app creation, and publishing.
---
# Create Site from Template

This recipe guides you through creating a new Wix site from a template, including template selection and optional publishing.

## Prerequisites

- Wix account with site creation permissions
- Account-level API access

## Required APIs

- **Templates Search API**: `GET https://www.wix.com/_api/template-cms-view-service/view/v2/templates/search`
- **Create Site API**: `POST https://www.wixapis.com/msm/v1/meta-site/create-from-template`
- **Publish Site API**: `POST https://www.wixapis.com/site-publisher/v1/site/publish`

---

## Step 1: Understand User Requirements

Before searching templates, gather information:

1. **Ask the user** to describe the site they want in a few sentences
2. **Ask if they want** Wix Editor or Wix Studio
3. **Identify main apps** needed (Stores, Bookings, Blog, etc.)

### Quick Start (Skip Template Search)

If user wants an empty/blank site:
- **Wix Studio blank**: `fe86a14e-ef67-49b4-a409-d086f3abaa1a`
- **Wix Editor blank**: `b55bdf43-95e0-4cef-b9bb-92dcc7af2742`

Skip to Step 3 with these template IDs.

---

## Step 2: Search for Templates

**Endpoint**: `GET https://www.wix.com/_api/template-cms-view-service/view/v2/templates/search`

**Query Parameters**:
| Parameter | Description | Values |
|-----------|-------------|--------|
| `language` | Always use | `en` |
| `limit` | Results per page | `24` |
| `offset` | Pagination offset | Start at `0`, increment by 24 |
| `bookType` | Editor type | `studio` or `main-v2` |
| `query` | Search keywords | `yoga+studio`, `ecommerce`, etc. |

**Example Request**:
```bash
curl -X GET \
  'https://www.wix.com/_api/template-cms-view-service/view/v2/templates/search?language=en&limit=24&offset=0&bookType=studio&query=yoga+studio' \
  -H 'Authorization: <AUTH>'
```

**Response** includes for each template:
- `metaSiteId` - Template ID for creation
- `templateSlug` - For preview URL
- Template name and description
- Color scheme

### Present Templates to User

For each relevant template, show:
- Template name
- Description (without "Click Edit" text)
- "Good for" description
- Color scheme
- Preview link: `https://www.wix.com/website-template/view/html/{templateSlug}`

---

## Step 3: Create the Site

**Endpoint**: `POST https://www.wixapis.com/msm/v1/meta-site/create-from-template`

**Request Body**:
```json
{
  "originTemplateId": "<TEMPLATE_METASITE_ID>",
  "siteName": "my-new-site"
}
```

**Request**:
```bash
curl -X POST \
  'https://www.wixapis.com/msm/v1/meta-site/create-from-template' \
  -H 'Authorization: <AUTH>' \
  -H 'Content-Type: application/json' \
  -d '{
    "originTemplateId": "<TEMPLATE_ID>",
    "siteName": "my-new-site"
  }'
```

### Site Name Requirements

The `siteName` must follow these rules:
- 4-20 characters
- Only lowercase letters, numbers, hyphens, underscores
- Pattern: `[a-z0-9_-]{4,20}`
- Must be unique

If `siteName` is not provided, one is generated automatically.

### For Headless Sites

Add `"namespace": "HEADLESS"` to the request body:

```json
{
  "originTemplateId": "<TEMPLATE_ID>",
  "siteName": "my-headless-site",
  "namespace": "HEADLESS"
}
```

**Response** includes the new site's `metaSiteId`.

### IMPORTANT NOTES:
- Only mention headless if user specifically requests it
- If user doesn't ask for headless, do NOT include the `namespace` field

---

## Step 4: Publish the Site (Optional)

**Ask the user** if they want to publish their site before proceeding.

**Endpoint**: `POST https://www.wixapis.com/site-publisher/v1/site/publish`

This is a **site-level API** - use the site ID from the creation response.

**Request**:
```bash
curl -X POST \
  'https://www.wixapis.com/site-publisher/v1/site/publish' \
  -H 'Authorization: <AUTH>' \
  -H 'Content-Type: application/json' \
  -d '{}'
```

### IMPORTANT NOTES:
- NEVER publish without asking the user first
- This makes the site publicly accessible

---

## Step 5: For Headless Sites - Create OAuth App

If the site was created as headless, you MUST create an OAuth app for authentication.

See [Create OAuth App](https://dev.wix.com/docs/api-reference/business-management/headless/oauth-apps/create-oauth-app) documentation.

This is a site-level call in the context of the newly created site.

---

## Common Template IDs

For quick access without searching:

| Type | Template ID |
|------|-------------|
| Blank (Studio) | `fe86a14e-ef67-49b4-a409-d086f3abaa1a` |
| Blank (Editor) | `b55bdf43-95e0-4cef-b9bb-92dcc7af2742` |
| Store | `b783f9f9-4f4d-4139-9659-cc95a51b9ee5` |
| Bookings/Services | `17b2bf9e-8661-4c92-973c-67502b415e58` |
| Beauty | `0281d415-0682-42ac-b35e-49b349f19332` |

---

## Next Steps

After creating the site:
- Install required apps using [Install Wix Apps](../app-installation/install-wix-apps.md)
- Configure site settings
- Add content (products, services, blog posts, etc.)

SHA-256: 772f171144a6de7dfc5ee82f68d6b65ad1e91fc05674b6e53edad61f64999cb9