> ## Documentation Index
> Fetch the complete documentation index at: https://docs.data-hub.verolabs.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Thực hành tốt nhất

> Sử dụng Vero Data Hub API hiệu quả và ổn định

<div style={{ width: '100%', height: 240, marginBottom: 32, borderRadius: 16, overflow: 'hidden', position: 'relative' }}>
  <video style={{ width: '100%', height: '100%', objectFit: 'cover', filter: 'sepia(0.3) saturate(1.5) hue-rotate(-14deg) brightness(0.72) contrast(1.12)' }} autoPlay loop muted playsInline>
    <source src="https://mintcdn.com/vero-fa5575b5/G_sL_RHXpWEXOwUp/images/bg_video.mp4?fit=max&auto=format&n=G_sL_RHXpWEXOwUp&q=85&s=f731a6a676fb99a2368193fbaf3281ee" type="video/mp4" data-path="images/bg_video.mp4" />
  </video>
</div>

<div style={{ width: '100%', height: 4, marginBottom: 24, borderRadius: 2, background: 'rgba(0,0,0,0.08)' }}>
  <div style={{ width: '87.5%', height: '100%', borderRadius: 2, background: 'linear-gradient(90deg, var(--accent-primary) 0%, var(--accent-light) 50%, var(--accent-dark) 100%)' }} />
</div>

## Chuẩn hóa yêu cầu

| Khuyến nghị                          | Lý do                                                                |
| ------------------------------------ | -------------------------------------------------------------------- |
| Luôn truyền khoảng thời gian rõ ràng | Phản hồi nhỏ hơn và dễ gỡ lỗi hơn                                    |
| Truyền `limit` hợp lý                | Tránh lấy nhiều dữ liệu hơn cần thiết                                |
| Dùng phân trang bằng cursor          | Ổn định hơn phân trang bằng offset                                   |
| Cache dữ liệu ít thay đổi            | Mã giao dịch, báo cáo và siêu dữ liệu quỹ không cần tải lại liên tục |
| Thử lại với backoff                  | Tránh gửi lại dồn dập khi có lỗi tạm thời                            |

## Gợi ý theo khoảng thời gian

| Trường hợp sử dụng  | Gợi ý                                        |
| ------------------- | -------------------------------------------- |
| Biểu đồ trong ngày  | Truy vấn theo phiên hoặc theo ngày           |
| Biểu đồ lịch sử dài | Chia nhỏ yêu cầu theo từng khoảng thời gian  |
| Luồng tin tức       | Truy vấn theo ngày hoặc timestamp mới nhất   |
| Phân tích theo lô   | Dùng phân trang và lưu tiến độ ở phía client |

## Luồng phân trang

<Steps>
  <Step title="Gửi yêu cầu đầu tiên">
    Truyền `limit` phù hợp với giao diện hoặc kích thước lô xử lý.
  </Step>

  <Step title="Kiểm tra next_cursor">
    Nếu phản hồi có `next_cursor`, vẫn còn trang tiếp theo.
  </Step>

  <Step title="Yêu cầu trang kế tiếp">
    Gửi cùng yêu cầu với `cursor` bằng token đã nhận.
  </Step>
</Steps>

## Xử lý lỗi

| Status | Cách xử lý                                         |
| ------ | -------------------------------------------------- |
| `400`  | Sửa tham số truy vấn hoặc định dạng thời gian      |
| `401`  | Kiểm tra thông tin xác thực của tài khoản          |
| `404`  | Kiểm tra ID, mã giao dịch hoặc mã quỹ đang yêu cầu |
| `429`  | Giảm tần suất và thử lại sau                       |
| `503`  | Thử lại với backoff sau một khoảng ngắn            |
