Bắt đầuHướng dẫn
Yêu cầu đầu tiên tới CheapTokens trong Hoppscotch: khóa trong một environment
Gửi chat completion đầu tiên từ client web Hoppscotch: URL gốc và khóa trong một environment, body JSON, và nơi đọc phản hồi và usage.

Trên trang này
Bạn có thể thực hiện yêu cầu CheapTokens đầu tiên trong Hoppscotch mà không cần cài đặt gì hay viết mã: mở ứng dụng web, đặt URL gốc và khóa của bạn vào một environment, tạo một yêu cầu POST /, nhấn Send. Câu trả lời và số lượng token hiện ra trong bảng phản hồi.
Điều duy nhất đáng làm cẩn thận là khóa. Nếu bạn dán thẳng nó vào yêu cầu, nó sẽ xuất hiện trong mọi ảnh chụp màn hình và mọi liên kết được chia sẻ. Một biến environment giữ nó ở một chỗ.
Hướng dẫn này theo tài liệu chính thức của Hoppscotch (kiểm tra ngày 9 tháng 11 năm 2026; các trang không ghi phiên bản hay ngày). Phía API là URL gốc CheapTokens https:/, sử dụng định dạng OpenAI Chat Completions. Thông tin thêm về cả hai trong tài liệu CheapTokens.
Đặt URL gốc và khóa vào một environment#
Hoppscotch có biểu tượng Environments ở thanh bên. Nhấp vào đó, tạo một environment mới, đặt tên là cheaptokens, và thêm hai biến:
Cuộn bảng sang phải →
| Biến | Loại | Giá trị |
|---|---|---|
baseURL |
Regular | https:/ |
api_key |
Secret | khóa CheapTokens của bạn |
Tại sao lại có hai loại? Theo tài liệu Hoppscotch, biến Regular hiển thị với mọi người có thể thấy environment, còn biến Secret được che, không bao giờ được đồng bộ hay chia sẻ, và bị loại khỏi bản xuất và bản sao. Khóa thuộc loại thứ hai: nhập nó làm giá trị của biến. Sau đó chọn environment cheaptokens để yêu cầu có thể thấy nó.
Trong yêu cầu, một biến được viết là <<name>>: <<baseURL>> và <<api_key>>. Đó là toàn bộ mẹo.

Tạo yêu cầu#
REST là chế độ đang hoạt động khi bạn mở Hoppscotch. Có ba thứ cần đặt.
Method và URL. Chọn POST trong dropdown và nhập:
<<baseURL>>/chat/completionsKhóa. Tab Authorization của Hoppscotch có loại Bearer và thêm token vào yêu cầu dưới dạng Bearer <token>. Tài liệu không nói liệu <<api_key>> có hoạt động trong trường token đó không, nên hãy dùng cách chắc chắn: mở tab Headers và thêm một header.
Authorization: Bearer <<api_key>>Bạn không phải thay biến bằng tay ở đâu cả, và khóa thật không bao giờ xuất hiện trong yêu cầu bạn thấy trên màn hình.
Body. Mở tab Body, chọn application/json trong dropdown Content Type (tài liệu liệt kê nó là loại cho nội dung định dạng JSON), và dán:
{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"messages": [
{"role": "user", "content": "Explain what a token is in one sentence."}
],
"max_tokens": 200
}Dùng id đầy đủ deepseek-. Tên viết tắt từ bảng giá sẽ không được API chấp nhận. DeepSeek-V4-Flash có ngữ cảnh 380K và tối đa 32.768 token đầu ra mỗi câu trả lời, nên 200 là giới hạn cố ý nhỏ cho một bài kiểm tra. Muốn model khác? Đổi trường đó thành zai- (ngữ cảnh 390K, tối đa 8.192 token đầu ra) và gửi lại.
Danh sách kiểm tra
Trước khi nhấn Send
Nhấn Send và đọc phản hồi#
Nhấp Send. Phần phản hồi hiển thị mã trạng thái, body, headers, cookies và thời gian. Bạn muốn 200 và một body JSON có dạng như định dạng chat completion của OpenAI. Hai chỗ quan trọng:
choices[0].là câu trả lời của model.message. content usagecóprompt_tokens(những gì bạn gửi) vàcompletion_(những gì model viết). Đó là những gì bạn bị tính phí, nên đây là nơi bạn kiểm tra một yêu cầu có tốn đúng như bạn dự kiến không.tokens
Cũng hãy xem choices[0].. stop nghĩa là model tự kết thúc. length nghĩa là max_tokens của bạn đã cắt câu trả lời. Nếu bạn thấy điều đó với một câu hỏi một câu, giới hạn quá thấp. Có giải thích dài hơn trong Câu trả lời AI bị cắt? Sửa finish_reason "length".

Lưu yêu cầu vào một collection và nó có thể tái sử dụng: đổi tin nhắn, nhấn Send lần nữa.
Một yêu cầu thử tốn bao nhiêu#
Lấy một câu hỏi ngắn và một câu trả lời ngắn: giả sử 30 token vào và 150 ra. Một yêu cầu như vậy tốn $0.000015, và bảng trực tiếp bên dưới đếm 100 yêu cầu như thế với đầu vào và đầu ra cộng lại, bên cạnh OpenRouter.
| Mô hình | Đầu vào $/1M | Đầu ra $/1M | Mỗi yêu cầu | 100 yêu cầu | OpenRouter, 100 yêu cầu |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.0000066 | $0.00066 | $0.0013 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000015 | $0.0015 | $0.0023 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000024 | $0.0024 | $0.0288 |
30 token đầu vào và 150 token đầu ra mỗi yêu cầu. Giá trên 1 triệu token là giá hiện hành và thay đổi cùng với biểu phí của chúng tôi; cột OpenRouter hiển thị giá tham chiếu cho cùng khối lượng công việc.
Tổng cộng, với đầu vào và đầu ra cộng lại, rẻ hơn OpenRouter cho cùng model. Số liệu của bạn sẽ khác, nên hãy kéo thanh trượt theo trường hợp của bạn:
Máy tính chi phí
Một trăm yêu cầu thử như trên
Token đầu vào mỗi yêu cầu: 30 · Token đầu ra mỗi yêu cầu: 150 · Số yêu cầu mỗi ngày: 100
| Mô hình | Mỗi ngày | Mỗi tháng |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.00066 | $0.0198 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.0015 | $0.0464 |
| MiniMax-M2.7$0.05$0.15 | $0.0024 | $0.072 |
Giá cố định theo từng model, không có giá giờ cao điểm, và một số dư bao phủ mọi model. Mức giá hiện tại ở trang giá.
Nếu không hoạt động#
Hầu hết lỗi yêu cầu đầu tiên trong một REST client đến từ ba trường. Khớp triệu chứng với nguyên nhân:
Ghép cặp
Khớp từng triệu chứng với nguyên nhân
Nhấn vào một mục bên trái, rồi đến cặp của nó
- 401 UnauthorizedKhóa bị thiếu hoặc sai, hoặc header
Authorizationkhông được gửi - 404 Not FoundĐường dẫn URL hoặc id model sai
- finish_reason là "length"Giới hạn
max_tokensđã cắt câu trả lời
Với hai lỗi đầu có hướng dẫn đầy đủ trong Lỗi API 401 hoặc 404: sai khóa, URL gốc hoặc id model. Nếu bạn không chắc dùng id nào, liệt kê model với GET /v1/models.
Tiếp theo nên đi đâu#
Cùng yêu cầu đó hoạt động trong các client khác: xem phiên bản Postman hoặc tệp .http trong VS Code. Nếu bạn muốn giữ khóa hoàn toàn ngoài tệp và shell, lưu trữ khóa API an toàn bao gồm những điều cơ bản. Id model và endpoint tương thích OpenAI được mô tả trong tài liệu.



