Tài liệu cho developer

Tài liệu API

Tài liệu đầy đủ về API endpoint, xác thực, request/response mẫu.

4

endpoint chính thức

5

định dạng ví dụ

SSE

sẵn sàng streaming

Request console
$curl {PIXELROUTER_BASE_URL}/v1/responses
$-H Authorization: Bearer pxr_your_api_key
$-d '{ model, input, stream }'

Bắt đầu tại đây

Dùng base URL của deployment PixelRouter, một PixelRouter key, rồi chọn endpoint có response shape phù hợp với client hiện tại của bạn.

Lộ trình tích hợp

Ba quyết định trước request đầu tiên

01

Tạo API key

Tạo PixelRouter key trong dashboard và chỉ giữ ở phía server. Ví dụ public luôn dùng placeholder.

02

Cấu hình base URL

Trỏ client tương thích OpenAI về base URL của PixelRouter. Client Anthropic dùng Messages endpoint với x-api-key.

03

Chọn response shape

Dùng Responses cho tích hợp text kiểu OpenAI mới, Chat Completions cho client cũ, hoặc Messages cho app tương thích Anthropic.

Bản đồ protocol

Các API Endpoint chính thức

GET/v1/models

GET /v1/models

Lấy danh sách các model public hiện có và có thể sử dụng. Request này hoàn toàn miễn phí và không trả về thông tin bảo mật hay upstream model ID.

POST/v1/chat/completions

POST /v1/chat/completions

API tương thích hoàn toàn với định dạng OpenAI Chat Completions. Sử dụng trường `messages` trong request body. Response trả về có trường `choices` chứa câu trả lời. Hỗ trợ truyền phát thời gian thực (`stream: true`).

POST/v1/responses

POST /v1/responses

API chuẩn hóa tương thích với OpenAI Responses, được khuyên dùng cho các tích hợp văn bản mới. Sử dụng trường `input` làm đầu vào. Response trả về có trường `output` và `output_text` chứa văn bản được sinh ra. Hỗ trợ truyền phát (`stream: true`).

POST/v1/messages

POST /v1/messages

API tương thích hoàn toàn với định dạng Anthropic Messages. Sử dụng trường `messages` làm đầu vào và trả về response theo chuẩn cấu trúc của Anthropic. Hỗ trợ truyền phát thời gian thực (`stream: true`). PixelRouter chấp nhận thiếu `max_tokens` như một tiện ích tương thích (mặc định 4.096, giới hạn theo model max output tokens). API chính thức của Anthropic vẫn yêu cầu `max_tokens`; khuyến khích client gửi trường này để kiểm soát output.

Thiết lập client

Dùng SDK bạn đã quen

OpenAI

Dùng với OpenAI SDK

Tương thích hoàn toàn với OpenAI SDK. Chỉ cần đổi base URL và API key.

baseURL: "{PIXELROUTER_BASE_URL}/v1"
apiKey: "pxr_your_api_key"

Anthropic

Dùng với Anthropic SDK

Hỗ trợ Anthropic Messages API qua endpoint chuyên biệt.

baseURL: "{PIXELROUTER_BASE_URL}"
x-api-key: "pxr_your_api_key"

Reference trực tiếp

Tài liệu API

Tài liệu đầy đủ về API endpoint, xác thực, request/response mẫu.

Tuyệt đối không sử dụng API key trong code frontend hoặc trình duyệt.

API key của bạn có toàn quyền truy cập vào số dư tài khoản. Chỉ sử dụng nó ở phía server. Việc để lộ API key trong JavaScript phía client, ứng dụng di động, hoặc kho lưu trữ công khai sẽ cho phép bất kỳ ai sử dụng credit của bạn.

Base URL

{PIXELROUTER_BASE_URL}

Xác thực

OpenAI-compatible endpoints dùng Bearer token trong header Authorization.

Authorization: Bearer pxr_your_api_key

Anthropic Messages API hỗ trợ cả x-api-key và Bearer token.

x-api-key: pxr_your_api_key

Danh sách endpoint

Chọn một endpoint để xem chi tiết cách sử dụng.

Chi tiết endpoint

GET/v1/models

GET /v1/models — Danh sách model

Lấy danh sách các model public hiện có và có thể sử dụng. Request này hoàn toàn miễn phí và không trả về thông tin bảo mật hay upstream model ID.

Xác thực

Authorization: Bearer pxr_your_api_key

Headers

Authorization: Bearer pxr_your_api_key

Response

{
  "object": "list",
  "data": [
    {
      "id": "your-model-id",
      "object": "model",
      "created": 0,
      "owned_by": "openai"
    }
  ]
}
Method: GET
URL: {PIXELROUTER_BASE_URL}/v1/models

Authorization:
  Type: Bearer Token
  Token: pxr_your_api_key

Headers:
  Content-Type: application/json

Click Send.

Response text paths

How to extract the assistant text from each endpoint response:

// /v1/chat/completions
response.choices[0].message.content

// /v1/messages
response.content[0].text

// /v1/responses
response.output[0].content[0].text

Streaming

const stream = await client.chat.completions.create({
  model: "your-model-id",
  messages: [{ role: "user", content: "Tell me a story" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

Thanh toán

Bạn bị tính phí theo token với mức giá được liệt kê trên trang bảng giá. Số dư trả trước của bạn bị trừ theo thời gian thực. Nếu số dư về 0, các yêu cầu sẽ bị từ chối với lỗi 402 Payment Required.

Lỗi thường gặp

Lỗi trả về theo định dạng chuẩn với mã lỗi rõ ràng.