# Tạo website bằng AI

`POST /service/@id/builder/sites` · TinoPage Builder, token đăng nhập của chủ dịch vụ

Body JSON `{intake}`: AI chọn mẫu và viết nội dung theo thông tin cơ sở kinh doanh. HTTP 202: lượt tạo chạy nền 1–5 phút; hỏi [Tiến độ tạo website](/docs/api/builder-get-site-creation) tới khi `state` là `done` (`site_id` là website mới) hoặc `failed`. Mỗi tài khoản một lượt tại một thời điểm: 409 `CREATION_IN_PROGRESS`; hết số website: 409 `LIMIT_EXCEEDED` (`details.key: sites`); thiếu, sai ô: 422 `VALIDATION_FAILED` theo `intake.<ô>`; AI tạm dừng: 503 `AI_UNAVAILABLE`.

## HTTP request

| Mục | Giá trị |
| --- | --- |
| URL | `https://api.tino.vn/service/@id/builder/sites` |
| Method | `POST` |
| Xác thực | token đăng nhập của chủ dịch vụ TinoPage Builder (`Authorization: Bearer <token>`); gateway `/v1` chưa mở TinoPage Builder |
| Content-Type | `application/json` |

## Tham số

| Tên | Vị trí | Kiểu | Bắt buộc | Mô tả |
| --- | --- | --- | --- | --- |
| `id` | đường dẫn | int | có | ID dịch vụ TinoPage Builder |
| `intake` | body | object | có | Thông tin cơ sở kinh doanh để AI chọn mẫu và viết nội dung: `business_name`, `industry`, `phone` bắt buộc; `address`, `city`, `services`, `hours`, `zalo`, `email` tuỳ chọn; độ dài tối đa ở [Bắt đầu với TinoPage Builder](/docs/builder-start#tao-website-bang-ai) |
| `idempotency_key` | body | string | không | 8–64 ký tự `A-Za-z0-9._:-`: gửi lại cùng khoá và cùng nội dung thì nhận lại kết quả lần trước, không làm lại |

## Example request

```bash
curl -X POST "https://api.tino.vn/service/100003/builder/sites" \
  -H "Authorization: Bearer $TINO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "intake": {
    "business_name": "Tiệm bánh Hoa Mai",
    "industry": "tiệm bánh",
    "phone": "0900000000",
    "city": "Thành phố Hồ Chí Minh",
    "services": "bánh sinh nhật, bánh mì"
  },
  "idempotency_key": "tao-website-0001"
}'
```

`$TINO_TOKEN` là token đăng nhập của chủ dịch vụ TinoPage Builder. Tham số đường dẫn trong ví dụ là giá trị mẫu.

SDK ([SDK & Ví dụ](/docs/sdk)): chưa có hàm riêng, dùng `client.request("POST", "/service/@id/builder/sites")`.

## Example response

```json
{
 "data": {
  "state": "running",
  "site_id": null,
  "message": null,
  "started_at": "2026-10-26T02:00:00Z",
  "finished_at": null
 }
}
```

Mẫu dựng theo API của TinoPage Builder (Tino chuyển tiếp nguyên câu trả lời trong `data`), giá trị là ví dụ.
