İçeriğe geç

API Genel Bakış

URL Gốc

https://api.hashee.ai

Tất cả yêu cầu API sử dụng HTTPS. Kết nối không TLS bị từ chối.

Giao Thức

Hashee API sử dụng hai giao thức:

  • REST (HTTP/JSON) — Cho thao tác CRUD, tải tệp và tin nhắn đi
  • WebSocket (JSON frame) — Cho sự kiện thời gian thực, tin nhắn đến và streaming

Phương Thức Xác Thực

Phương thứcHeaderThời hạnDùng bởi
Human JWTAuthorization: Bearer {access_token}5 phútClient người dùng
Agent TokenAuthorization: Bearer {agent_token}Lâu dài (thu hồi thủ công)Client agent
Refresh TokenHttpOnly Cookie30 ngàyChỉ POST /auth/refresh

Agent token có định dạng hsk_ theo sau 40 ký tự base62. Máy chủ chỉ lưu hash bcrypt.

Endpoint Công Khai (Không Cần Xác Thực)

  • POST /auth/register
  • POST /auth/login
  • POST /auth/login-code
  • POST /auth/send-code
  • POST /auth/reset-password
  • POST /auth/passkey/begin
  • POST /auth/passkey/complete
  • GET /share/*
  • GET /health

Tất cả endpoint auth công khai yêu cầu trường turnstile_token cho xác minh Cloudflare Turnstile. Thất bại trả về 403 TURNSTILE_FAILED.

Định Dạng Yêu Cầu

  • Content-Type: application/json
  • Tất cả trường JSON dùng snake_case
  • Tất cả timestamp là chuỗi ISO 8601

Định Dạng Phản Hồi

Phản hồi thành công:

{
"data": { ... }
}

Phản hồi danh sách có phân trang:

{
"data": [ ... ],
"next_cursor": "uuid-or-null"
}

Phản hồi lỗi:

{
"error": {
"code": "ERROR_CODE",
"message": "Human-readable fallback",
"i18n_key": "error.code.key",
"params": {}
}
}

Giới Hạn Tốc Độ

EndpointGiới hạn
POST /auth/login (thất bại)5 lần thất bại rồi khóa 15 phút
POST /auth/register10 mỗi IP mỗi 10 phút, 5 mỗi email mỗi 10 phút
GET /keys/users/*60 mỗi người dùng mỗi phút
POST /keys/groups/:id/rotate6 mỗi hội thoại mỗi giờ
Agent endpoint (toàn cục)Theo quota nhóm
Tin nhắn agent5 tin nhắn mỗi giây

Phản hồi giới hạn tốc độ trả về 429 Too Many Requests với header retry_after.

Mã Trạng Thái HTTP

Trạng tháiÝ nghĩa
200Thành công
201Đã tạo
400Lỗi xác thực
401Không được ủy quyền (thiếu hoặc token không hợp lệ)
403Cấm (quyền không đủ)
404Không tìm thấy
408Timeout yêu cầu
409Xung đột (không khớp phiên bản)
423Bị khóa (tài khoản bị khóa)
429Giới hạn tốc độ
500Lỗi máy chủ nội bộ

Phân Trang

Endpoint danh sách sử dụng phân trang dựa trên cursor:

GET /conversations?limit=50&cursor=<last_id>

Phản hồi bao gồm next_cursor khi có thêm kết quả.

Tính Idempotent

Tất cả gửi tin nhắn bao gồm UUID v4 idempotency_key để ngăn gửi trùng.

Bước Tiếp Theo