Bắt đầu nhanh & Xác thực API
Hướng dẫn lấy khóa API Key, thiết lập Base URL, xác thực Bearer Token bảo mật và thực hiện lệnh gọi API đầu tiên tới nền tảng Bvoiz AI Voice.
1. Tổng quan về REST API Bvoiz
Bvoiz cung cấp hệ thống RESTful API tiêu chuẩn công nghiệp với tốc độ xử lý cao, độ trễ thấp và tích hợp liền mạch vào bất kỳ ngôn ngữ lập trình nào (Python, Node.js, Go, PHP, Java, cURL...). Mọi dữ liệu truyền nhận đều được mã hóa bằng chuẩn UTF-8 và đóng gói theo định dạng JSON.
Tất cả các endpoint tài liệu sau đây đều được nối tiếp sau Base URL này (ví dụ: https://api.bvoiz.com/api/v1/tts).
2. Hướng dẫn lấy khóa API Key
Để gửi yêu cầu tới Bvoiz API, bạn cần sở hữu một khóa API Key hợp lệ gắn liền với tài khoản của bạn. Các bước tạo khóa như sau:
API Key tương đương với mật khẩu truy cập của bạn và có quyền trừ trực tiếp số dư credits. Tuyệt đối không commit API Key vào kho mã nguồn công khai (GitHub/GitLab) hoặc nhúng trực tiếp vào mã JavaScript chạy trên trình duyệt (client-side). Luôn lưu trữ API Key trong biến môi trường (.env) ở phía máy chủ backend.
3. Cơ chế xác thực Bearer Token
Bvoiz sử dụng cơ chế xác thực tiêu chuẩn HTTP Bearer Token. Trong mọi yêu cầu HTTP gửi lên hệ thống, bạn cần đính kèm header sau:
| Tên Header | Giá trị mẫu | Mô tả |
|---|---|---|
| Authorization | Bearer bvz_live_9a8f27c81d... | Tiền tố Bearer kèm dấu cách và chuỗi API Key của bạn. |
| Content-Type | application/json | Bắt buộc với mọi request có body gửi dữ liệu JSON. |
4. Gửi yêu cầu API đầu tiên
Dưới đây là ví dụ hoàn chỉnh thực hiện lệnh gọi POST /api/v1/tts để chuyển một câu văn bản thành file âm thanh MP3 bằng cURL, Python và Node.js:
curl -X POST "https://api.bvoiz.com/api/v1/tts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_text": "Xin chào! Đây là yêu cầu API đầu tiên của bạn trên nền tảng Bvoiz AI Voice.",
"speaker_id": "vi_male_leduc_mb",
"speed": 1.0,
"pitch": 1.0,
"volume": 100,
"audio_type": "mp3"
}'5. Cấu trúc phản hồi chuẩn (Response Format)
Mọi API của Bvoiz đều tuân thủ cấu trúc phong bì (Envelope Pattern) đồng nhất. Phản hồi thành công sẽ luôn có trường "status": 1 và chứa dữ liệu trong đối tượng result:
{
"status": 1,
"result": {
"request_id": "req_1790355651_a5a901a8",
"audio_url": "https://api.bvoiz.com/storage/audio/req_1790355651_a5a901a8.mp3",
"speaker_id": "vi_male_leduc_mb",
"speaker_name": "Lê Đức (Nam - Bắc)",
"provider": "edge",
"char_count": 82,
"duration_sec": 4.65,
"file_size": 74320,
"expires_at": "2026-10-28T12:00:00Z"
}
}Nếu có lỗi xảy ra (do thiếu tham số, token sai, hoặc tài khoản hết hạn mức), API sẽ trả về mã lỗi HTTP tương ứng kèm "status": 0 và thông điệp hướng dẫn cụ thể:
{
"status": 0,
"code": "INVALID_API_KEY",
"message": "Khóa API không hợp lệ hoặc đã bị vô hiệu hóa.",
"errors": null
}6. Bảng mã trạng thái HTTP chuẩn
| Mã HTTP | Ý nghĩa | Nguyên nhân & Hướng giải quyết |
|---|---|---|
| 200 OK | Thành công | Yêu cầu hợp lệ, audio đã được tạo hoặc truy vấn dữ liệu hoàn tất. |
| 400 Bad Request | Tham số không hợp lệ | Thiếu trường bắt buộc (ví dụ: input_text rỗng) hoặc kiểu dữ liệu sai. |
| 401 Unauthorized | Lỗi xác thực | API Key bị thiếu, không đúng hoặc đã bị xóa trong trang quản trị. |
| 402 Payment Required | Không đủ Credits | Tài khoản của bạn đã dùng hết số ký tự credits khả dụng. Cần nạp thêm gói. |
| 429 Too Many Requests | Vượt giới hạn tần suất | Số lượng request gửi lên vượt quá hạn mức Rate Limit của gói cước hiện tại. |
| 500 Internal Error | Lỗi hệ thống máy chủ | Lỗi phát sinh ngoài dự kiến từ hệ thống tổng hợp. Hãy liên hệ bộ phận hỗ trợ kỹ thuật. |