> For the complete documentation index, see [llms.txt](https://docs.avis.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.avis.net/vi/tai-lieu-api/endpoints.md).

# Endpoints

Hướng dẫn này mô tả hợp đồng API công khai dành cho client để liệt kê mô hình AI và gọi các endpoint tạo văn bản, hình ảnh, video, âm thanh.

**Đường dẫn gốc:** `/api/v1`

**Xác thực:** các endpoint tạo nội dung yêu cầu bearer JWT hoặc header `x-api-key`. Các endpoint liệt kê mô hình tuân theo cấu hình route guard trong controller; hãy kiểm tra chính sách truy cập đã triển khai trước khi mở cho client bên ngoài.

Client nên chọn `model` dành cho người dùng. Backend sẽ tự động chọn mô hình phù hợp nhất từ nhà cung cấp đang hoạt động.

### Lưu ý về kiểm tra dữ liệu (validation)

API dùng Nest `ValidationPipe` với `whitelist: true` và `transform: true`.

* Các trường không xác định trong request sẽ bị loại bỏ trước khi DTO được chuyển đến service.
* Lỗi kiểm tra DTO trả về `400`.
* Với endpoint tạo nội dung, lỗi phân giải mô hình trả về `400` nếu không có nhà cung cấp đang hoạt động nào hỗ trợ `model` được yêu cầu.
* Một số bước kiểm tra riêng theo nhà cung cấp diễn ra sau khi DTO được kiểm tra. Ví dụ, giá trị `maxTokens` không được hỗ trợ cho video hoặc request nhiều ảnh không được hỗ trợ có thể trả về `400` dù cấu trúc DTO hợp lệ.
* Tham số tạo nội dung phụ thuộc vào mô hình, không phụ thuộc vào nhà cung cấp. Nếu mô hình được chọn không hỗ trợ một tham số, API trả về `400` kèm tên mô hình, chẳng hạn `cameraFixed` với một mô hình Seedance 2.0. Thông tin nhà cung cấp không thuộc hợp đồng request.
* `resolution` và `ratio` là các token chuỗi mở. DTO không định trước các giá trị này, nên token của mô hình mới vẫn vượt qua bước kiểm tra DTO và được nhà cung cấp xác thực.
* Request hình ảnh và video chấp nhận mảng `content` có thứ tự. Thứ tự được giữ nguyên và có thể ảnh hưởng đến cách nhà cung cấp xử lý, nhất là với request video có khung hình đầu/cuối.
* Đầu vào base64 có thể là chuỗi base64 thô hoặc data URL đầy đủ. Nếu dùng base64 thô, hãy gửi kèm `mediaType`.

### Các mục endpoint

1. **Liệt kê mô hình AI** — `GET /api/v1/ai/models` — Khám phá các mô hình có sẵn và khả năng của chúng
2. **Tạo văn bản** — `POST /api/v1/text/completions` — Stream văn bản dạng chat
3. **Tạo hình ảnh** — `POST /api/v1/image/generations` — Tạo hình ảnh đồng bộ hoặc bất đồng bộ
4. **Tạo video** — `POST /api/v1/video/generations` — Tạo video với cơ chế poll theo task
5. **Luồng KYC Seedance 2.0** — Quản lý tài nguyên KYC cho việc tạo video gắn với danh tính
6. **Tạo âm thanh** — `POST /api/v1/audio/text-to-speech` và `POST /api/v1/audio/generation-with-reference` — Chuyển văn bản thành giọng nói và tạo âm thanh dựa trên tham chiếu, cả hai đều theo cơ chế task


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.avis.net/vi/tai-lieu-api/endpoints.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
