Source: https://datafa.st/docs/api/account/websites/create
Markdown source: https://datafa.st/docs/api/account/websites/create.md
Description: Create a website.

# Create website

`POST https://datafa.st/api/v1/admin/websites`

Create a new website on your account. Returns the website ID and script `trackingId` for installation.

Requires a `dft_` account token with `websites:write`. Website API keys cannot create websites.

## Request

#### Body parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `domain` | string | Yes | Tracked domain without `https://`. Example: `"example.com"`. Must pass DataFast domain validation. |
| `timezone` | string | Yes | Timezone used to interpret dates and group analytics buckets. Defaults to the website timezone. IANA timezone for dashboard periods and API date grouping. Examples: `"America/New_York"`, `"Europe/Paris"`, `"UTC"`. |
| `name` | string | No | Name shown in the dashboard. Example: `"My SaaS"`. Optional on create. |

#### Example request body

```json
{
  "domain": "example.com",
  "timezone": "America/New_York",
  "name": "Example SaaS"
}
```

## Response

Returns a JSON object with `status: "success"` and endpoint-specific fields in `data`.

#### Response fields

| Field | Type | Description |
| --- | --- | --- |
| `data[].websiteId` | string | Website ObjectId used by account tokens to choose which website to query or manage. |
| `data[].domain` | string | Created website domain. |
| `data[].trackingId` | string | Script tracking ID for the website. |

### Authentication

Requires a `dft_` account token with `websites:write`. Website API keys (`df_`) cannot call this endpoint because it manages account-level resources.

Create tokens in [Account settings → API](https://datafa.st/dashboard/settings?tab=api).

### Errors

**400** — Invalid domain or timezone.

**403** — Billing/plan limit reached.

**409** — Domain already exists on your account.

See [API errors](/docs/api#errors) for the standard error envelope, auth failures, validation errors, permission errors, and rate limits.

## Code examples

### Example request

```bash
curl -X POST "https://datafa.st/api/v1/admin/websites" \
  -H "Authorization: Bearer dft_xxx" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com","timezone":"America/New_York","name":"Example"}'
```

### Success response

```json
{
  "status": "success",
  "data": [{
    "websiteId": "665f0b3c4d2e1a0012345678",
    "domain": "example.com",
    "trackingId": "dfid_abc123"
  }]
}
```
