/v1/chat/completions
ใช้กับ OpenAI SDK, Cherry Studio, Cline, Open WebUI และไคลเอนต์เครื่องมือส่วนใหญ่
ChinaAPI มอบเอนด์พอยต์เดียวที่ใช้งานร่วมกับ OpenAI ได้ สำหรับโมเดล DeepSeek, Qwen, GLM, Kimi, Doubao รวมถึงโมเดลด้านรูปภาพ วิดีโอ embedding และ rerank ให้แอปของคุณ คง SDK เดิมไว้ เปลี่ยนแค่เอนด์พอยต์ และจัดการการใช้งานทั้งหมดจากแดชบอร์ดเดียว
การเชื่อมต่อ
https://api.chinaapi.ai
https://api.chinaapi.ai/v1 และใช้โทเค็น ChinaAPI ของคุณเป็นคีย์ bearer
คำขอ API ทั้งหมดใช้การยืนยันตัวตนแบบ bearer token สร้างโทเค็นในแดชบอร์ด แล้วส่งไปพร้อมกับส่วนหัว Authorization
Authorization: Bearer $CHINAAPI_KEY
Content-Type: application/json
ไคลเอนต์ OpenAI ส่วนใหญ่ใช้งานได้หลังจากเปลี่ยน baseURL ใช้ชื่อโมเดลที่เผยแพร่ในแดชบอร์ด ChinaAPI ของคุณ
curl https://api.chinaapi.ai/v1/chat/completions \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [
{ "role": "user", "content": "Hello" }
]
}'
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.CHINAAPI_KEY,
baseURL: "https://api.chinaapi.ai/v1",
});
const result = await client.chat.completions.create({
model: "deepseek-chat",
messages: [{ role: "user", content: "Hello" }],
});
ChinaAPI สามารถส่งต่อทั้งทราฟฟิกรูปแบบ OpenAI และทราฟฟิกเฉพาะของผู้ให้บริการแต่ละราย ให้แยกเส้นทางสำหรับไคลเอนต์ที่ต้องการ Claude Messages API หรือ payload ที่รองรับ Gemini
ใช้กับ OpenAI SDK, Cherry Studio, Cline, Open WebUI และไคลเอนต์เครื่องมือส่วนใหญ่
ส่งต่อ payload ข้อความรูปแบบ Claude โดยยังคงใช้คีย์เกตเวย์และการควบคุมโควตาเดิม
ใช้ไคลเอนต์ที่รองรับ Gemini เมื่อแอปพลิเคชันของคุณต้องพึ่งพาโครงสร้างคำขอแบบ Gemini
โมเดลวิดีโอตอบกลับเป็นงาน ไม่ใช่การตอบกลับครั้งเดียว POST /v1/videos จะคืนรหัสงานพร้อม "status": "queued" และ GET /v1/videos/{task_id} จะรายงานความคืบหน้าจนงานเปลี่ยนเป็น completed หรือ failed เมื่อเสร็จแล้ว ไฟล์ที่ได้คือ URL ที่ลงลายเซ็นใน metadata.url ซึ่งมีพารามิเตอร์ Expires ติดมาด้วย จึงควรดาวน์โหลดไฟล์เก็บไว้แทนการเก็บลิงก์ งานที่ล้มเหลวจะแนบรหัสและข้อความจากต้นทางไว้ใน error.code และ error.message ซึ่งมักเพียงพอให้เห็นว่าคำขอขาดฟิลด์ใด ส่วน POST /v1/video/generations เข้าสู่ตัวจัดการเดียวกัน สำหรับไคลเอนต์ที่เขียนตามเส้นทางนั้นไว้แล้ว
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-i2v",
"prompt": "the cat turns and walks toward the camera",
"input_reference": "https://example.com/first-frame.jpg",
"size": "1280*720",
"duration": 5
}'
# {"id":"task_9f2c...","task_id":"task_9f2c...","object":"video",
# "model":"wan2.7-i2v","status":"queued","progress":0}
curl https://api.chinaapi.ai/v1/videos/task_9f2c... \
-H "Authorization: Bearer $CHINAAPI_KEY"
# {"id":"task_9f2c...","object":"video","model":"wan2.7-i2v",
# "status":"completed","progress":100,
# "metadata":{"url":"https://.../output.mp4?Expires=..."}}
มีเพียง model และ prompt ที่จำเป็น หากไม่ระบุ size และ duration เกตเวย์จะส่งเป็น 1280*720 ความยาวห้าวินาที
ทำให้ภาพนิ่งเคลื่อนไหว input_reference รับ URL รูปภาพที่เข้าถึงได้แบบสาธารณะและจะกลายเป็นเฟรมแรก ให้ส่ง size และ duration ไปพร้อมกัน
สร้างวิดีโอจากสื่ออ้างอิง input_reference รับภาพอ้างอิงหนึ่งภาพ หากต้องการส่งหลายภาพให้ใช้ images แทน และ video_url เพิ่มวิดีโออ้างอิง — นับรวมกันได้สูงสุดห้ารายการ อย่าส่ง input_reference พร้อม images เพราะเกตเวย์จะเก็บเฉพาะ input_reference
แก้ไขคลิปที่มีอยู่ตามพรอมป์ต์ video_url รับวิดีโอต้นฉบับ ซึ่งต้องยาว 2 ถึง 10 วินาที เป็น MP4 หรือ MOV และ size กำหนดผลลัพธ์
ภาพอ้างอิงใส่ใน images เพราะตระกูลนี้ไม่สนใจ input_reference ความยาวใส่ใน seconds และพารามิเตอร์ของผู้ให้บริการใส่ใน metadata ซึ่ง resolution รับได้เฉพาะ 480p หรือ 720p
size เป็นความกว้างและความสูงคั่นด้วยเครื่องหมายดอกจัน เช่น 1280*720 ตัวอักษร x ใช้ไม่ได้ 832x480 จะได้ invalid size: 832x480, example: 1920*1080 กลับมา duration เป็นจำนวนวินาทีเต็ม สำหรับ wan2.7-i2v wan2.7-r2v และ wan2.7-videoedit เกตเวย์จะพับ size ให้เป็นระดับความละเอียด และต้นทางมีเพียงสองระดับ จึงให้ส่ง 1280*720 สำหรับ 720P หรือ 1920*1080 สำหรับ 1080P ขนาดระดับ 480P เช่น 832*480 จะถูกปฏิเสธ ส่วน wan2.7-t2v รับค่าตามที่เขียนไว้
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "the subject slowly turns toward the camera",
"images": ["https://example.com/first-frame.jpg"],
"seconds": "5",
"metadata": {"resolution": "480p"}
}'
curl https://api.chinaapi.ai/v1/videos \
-H "Authorization: Bearer $CHINAAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-5-260628",
"prompt": "keep the subject from the reference image",
"seconds": "5",
"metadata": {
"resolution": "480p",
"ratio": "16:9",
"content": [
{
"type": "image_url",
"image_url": {"url": "https://example.com/reference.jpg"},
"role": "reference_image"
}
]
}
}'
role จะถูกอ่านเป็นเฟรมแรกไม่ใช่ภาพอ้างอิง ผลลัพธ์จึงใช้อัตราส่วนของภาพนั้น การส่ง ratio มาด้วยจะถูกปฏิเสธด้วย InvalidParameter.TaskTypeConstraint และ seconds เท่ากับ 2 ก็ถูกปฏิเสธในโหมดนี้ ขณะที่ 5 ใช้ได้ generate_audio ต้นทางมีค่าเริ่มต้นเป็น true ดังนั้นไฟล์ที่ได้จะมีแทร็กเสียงเว้นแต่ตั้งเป็น false ใน metadata ใส่ role ให้ทุกรายการใน metadata.content เพื่อใช้โหมดอ้างอิงเต็มรูปแบบ — ภาพได้ถึง 30 ภาพ วิดีโอ 10 รายการ และเสียง 10 รายการ ป้อนเฉพาะเสียงก็ได้ และสร้างต่อเนื่อง 30 วินาที — ซึ่งโหมดนั้นรับ ratio ได้
เผยแพร่ชื่อเรียกโมเดลที่ทีมของคุณต้องการใช้ แล้วแมปไปยังช่องทางต้นทาง กลุ่มสำรอง ราคา และกลุ่มผู้ใช้ในแดชบอร์ด
ChinaAPI ไม่ได้เป็นเพียงเอนด์พอยต์ส่งต่อเท่านั้น แต่ยังมีคีย์ ผู้ใช้ กลุ่ม สถานะช่องทาง ล็อก โควตา และการควบคุมการเรียกเก็บเงินสำหรับทราฟฟิกจริงในระดับโปรดักชัน
สร้างและหมุนเวียนโทเค็น กำหนดกลุ่ม และแยกทราฟฟิกของผู้ใช้แต่ละรายออกจากกัน
กำหนดค่าช่องทางต้นทางหลายช่องทาง เพื่อให้ชื่อเรียกโมเดลหนึ่งชื่อยังคงใช้งานได้แม้ผู้ให้บริการจะขัดข้อง
ติดตามสถานะคำขอ การใช้งานโทเค็น การใช้โควตา และรายละเอียดข้อผิดพลาดได้ในที่เดียว