# Publish a website

`POST /service/@id/builder/sites/@site/publish` · TinoPage Builder, service owner's sign-in token

Publishes the website's latest version, which also reopens a paused website. Returns the website. A website the system paused because the account is over its website count answers 409 `SITE_PAUSED`: delete another website or raise the service's website count.

## HTTP request

| Item | Value |
| --- | --- |
| URL | `https://api.tino.vn/service/@id/builder/sites/@site/publish` |
| Method | `POST` |
| Authentication | the TinoPage Builder service owner's sign-in token (`Authorization: Bearer <token>`); the `/v1` gateway does not expose TinoPage Builder yet |
| Content-Type | `application/json` |

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | int | yes | TinoPage Builder service ID |
| `site` | path | string | yes | Website ID (UUID, `id` in the website list) |
| `idempotency_key` | body | string | no | 8–64 characters `A-Za-z0-9._:-`: resending the same key and content returns the earlier result instead of running again |

## Example request

```bash
curl -X POST "https://api.tino.vn/service/100003/builder/sites/5b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e/publish" \
  -H "Authorization: Bearer $TINO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "idempotency_key": "dang-website-0001"
}'
```

`$TINO_TOKEN` is the TinoPage Builder service owner's sign-in token. Path parameters in the example are sample values.

SDK ([SDK & examples](/en/docs/sdk)): no dedicated function yet, use `client.request("POST", "/service/@id/builder/sites/@site/publish")`.

## Example response

```json
{
 "data": {
  "id": "5b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
  "name": "Tiệm bánh Hoa Mai",
  "slug": "tiem-banh-hoa-mai",
  "status": "published",
  "paused": false,
  "paused_reason": null,
  "host": "example.vn",
  "preview_url": "https://builder.tino.vn/tiem-banh-hoa-mai",
  "pages": {
   "used": 3,
   "limit": 10
  },
  "items": {
   "used": 12,
   "limit": 100
  },
  "domains": {
   "used": 1,
   "limit": 2
  },
  "created_at": "2026-10-26T02:10:00Z",
  "updated_at": "2026-10-26T03:20:00Z"
 }
}
```

Sample built from the TinoPage Builder API (Tino relays the answer as is inside `data`); values are examples.
