# Vé đăng nhập một lần

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

Trả 201 `{url, expires_at}`: link đăng nhập dùng một lần, hiệu lực 120 giây, vào trang quản lý (`target: me`) hoặc trình sửa của một website (`target: editor`, `site_id`). Mở link ngay cho chính chủ dịch vụ, không lưu, không gửi qua kênh khác. Dịch vụ đang tạm ngưng vẫn cấp vé (vào chỉ xem); dịch vụ đã chấm dứt trả 403 `ACCOUNT_TERMINATED`.

## HTTP request

| Mục | Giá trị |
| --- | --- |
| URL | `https://api.tino.vn/service/@id/builder/login` |
| 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 |
| `target` | body | string | không | `me` (trang quản lý, mặc định) hoặc `editor` (trình sửa website) |
| `site_id` | body | string | không | ID website (UUID) cần mở; bỏ trống: website cũ nhất của tài khoản |
| `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/login" \
  -H "Authorization: Bearer $TINO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "editor",
  "site_id": "5b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e"
}'
```

`$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/login")`.

## Example response

```json
{
 "data": {
  "url": "https://builder.tino.vn/dang-nhap/ve/<ve>",
  "expires_at": "2026-10-26T03:32:00Z"
 }
}
```

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ụ.
