REST API
認證票證 API
POST /api/v1/auth/ticket
功能說明
取得 WebSocket 連線用的一次性 Ticket。由於瀏覽器原生 WebSocket API 不支援自訂 HTTP Header,VAS 採用 Ticket 機制:先以 API Key 換取一次性 Ticket,再透過 Sec-WebSocket-Protocol 建立 WebSocket 連線。
認證方式
Header:X-API-Key(詳見 認證機制)
請求參數
此端點不需要任何請求參數。
請求範例
curl -X POST "https://vas-poc.vurbo.ai/api/v1/auth/ticket" \
-H "X-API-Key: vas_aB3dE5fG7hI9jK1lM3nO5pQ7rS9tU1vW"
成功回應
HTTP 200
{
"ticket": "aBcDeFgHiJkLmNoPqRsTuVwXyZ012345",
"expires_in": 60
}
回應欄位說明
| 欄位 | 類型 | 說明 |
|---|---|---|
ticket | string | 一次性 Ticket(32 字元隨機字串) |
expires_in | integer | 有效期(秒),固定為 60 |
Ticket 特性
| 特性 | 說明 |
|---|---|
| 有效期 | 60 秒內必須使用 |
| 一次性使用 | 使用後立即刪除,無法重複使用 |
| 使用方式 | 透過 Sec-WebSocket-Protocol 傳遞,格式為 ticket.{ticket_value} |
使用範例
取得 Ticket 後,使用以下方式建立 WebSocket 連線:
const ws = new WebSocket('wss://vas-poc.vurbo.ai/ws', [`ticket.${ticket}`]);
特有錯誤碼
| 錯誤碼 | HTTP 狀態碼 | 說明 | 處理建議 |
|---|---|---|---|
plan_daily_limit_reached | 402 | 已達方案每日用量上限(吃到飽方案,v1.9.0) | 依方案規則重置(隔日)後再取得 Ticket;可用 GET /api/v1/me/plan 查用量與恢復時間 |
ticket_*不是本端點的錯誤碼:Ticket 的驗證發生在建立 WebSocket 連線時, 這四個碼是那個階段以 WebSocket 訊息回給客戶端的,不會出現在本 REST 端點的 HTTP 回應裡。實務上只會收到兩個:Ticket 一律以「取用即刪」的方式驗證, 所以無效、過期、已使用三種情況都回
ticket_invalid;ticket_expired與ticket_already_used目前不會送出。 驗證程序本身出錯時回ticket_validation_failed(401,不是 500)。
版本:V1.24.1 最後更新:2026-09-28