บัญชี
รายชื่อบัญชี
แสดงบัญชีของผู้ให้บริการใน พื้นที่ทำงานปัจจุบัน สถานะการยืนยันตัวตนของบัญชีอยู่ใน จุดเชื่อมต่อ กลุ่ม Authentication
https://api.unifyport.ai/v1/accountsช่องทางที่รองรับ
ก่อนเรียกใช้
ใช้ X-Api-Key ของ workspace เจ้าของทรัพยากรบนเซิร์ฟเวอร์ แทนค่าตัวอย่างทั้งหมดก่อนเรียกใช้
พารามิเตอร์คำขอ
ส่วนหัว
X-Api-KeyAPI key ของพื้นที่ทำงาน ระบบจะระบุพื้นที่ทำงานจากส่วนหัวนี้
พารามิเตอร์ Query
limitจำนวนบัญชีสูงสุดต่อหน้า ตั้งแต่ 1 ถึง 100 ค่าเริ่มต้นคือ 20 เมื่อละไว้ ค่าที่ไม่ถูกต้องหรือการส่ง limit ซ้ำจะคืน 400 invalid_request (numeric_code=10000) สามารถปรับค่านี้เมื่อขอหน้าถัดไปได้
minimum: 1 · maximum: 100
cursorเคอร์เซอร์แบบ opaque สำหรับรายการบัญชี ละไว้หรือส่งสตริงว่างเพื่ออ่านหน้าแรก สำหรับหน้าถัดไปให้ส่ง data.next_cursor จากการตอบกลับก่อนหน้าโดยไม่แก้ไข ใช้ได้เฉพาะ workspace ที่ออกเคอร์เซอร์นั้น การส่ง cursor ที่ไม่ถูกต้อง ส่งซ้ำ หรือใช้ข้าม workspace จะคืน 400 invalid_request (numeric_code=10000)
เนื้อหาของคำขอ
จุดเชื่อมต่อนี้ไม่ต้องใช้เนื้อหา JSON
ทำความเข้าใจผลลัพธ์
อ่านบัญชีจาก data.items หาก data.has_more=true ให้ส่ง data.next_cursor เดิมเป็น cursor เพื่อเรียกหน้าถัดไป สถานะยืนยันตัวตนต้องเรียกดูแยกจาก API ยืนยันตัวตน
การตอบกลับ 200 OK
{
"request_id": "<REQUEST_ID>",
"data": {
"items": [
{
"id": "acc_example",
"name": "Telegram Production",
"provider": "telegram",
"region": "global",
"status": "active",
"runtime_status": "running",
"auth_mode": "qrcode",
"capabilities": [
"send_message",
"receive_message"
],
"metadata": {
"env": "production"
},
"provider_account_ref": "provider-side-identifier",
"provider_profile": {
"id": "778899",
"phone": "8600000000000",
"username": "production_bot",
"display_name": "Production Bot",
"first_name": "Production",
"last_name": "Bot",
"avatar_url": "https://example.com/avatar.jpg",
"bio": "Customer support"
}
}
],
"has_more": false
}
}
เนื้อหาการตอบกลับ
provider_profileobjectโปรไฟล์ที่ผู้ให้บริการรายงาน เช่น display_name จะถูกละไว้ก่อนที่บัญชีจะยืนยันตัวตน
provider_profileโปรไฟล์ที่ผู้ให้บริการรายงาน เช่น display_name จะถูกละไว้ก่อนที่บัญชีจะยืนยันตัวตน
idตัวระบุแบบ opaque ของบัญชีในช่องทางที่เชื่อมต่อ สำหรับ WhatsApp อาจเป็น canonical LID ที่ไม่มี suffix ของอุปกรณ์
device_idหมายเลขอุปกรณ์ที่เข้าสู่ระบบ ซึ่งอาจปรากฏในรายละเอียดบัญชี WhatsApp เมื่อระบุเซสชันปัจจุบันได้ อาจเปลี่ยนหลังยืนยันตัวตนใหม่และไม่ใช่รหัสอุปกรณ์ถาวร
minimum: 0 · maximum: 65535
phoneหมายเลขโทรศัพท์ที่ normalize แล้ว ไม่มีช่องว่าง ขีด หรือเครื่องหมาย + นำหน้า
usernameusername ที่ provider รายงาน ถ้ามี
display_nameชื่อแสดงผลของบัญชี สำหรับ WhatsApp จะสร้างโดยให้ BusinessName มาก่อนและใช้ PushName เป็นค่าทดแทน
push_namePushName ที่ตั้งอยู่บนบัญชี WhatsApp ปัจจุบัน provider อื่นไม่ได้กำหนดความหมายของฟิลด์นี้
business_nameWhatsApp BusinessName; จะละฟิลด์นี้เมื่อ provider ไม่ส่งค่ากลับมา
first_nameชื่อที่ provider รายงาน ถ้ามี
last_nameนามสกุลที่ provider รายงาน ถ้ามี
avatar_urlURL รูปประจำบัญชีที่ provider รายงาน
bioประวัติหรือข้อความสถานะที่ provider รายงาน
platformตัวระบุแพลตฟอร์มการเข้าสู่ระบบที่ WhatsApp รายงานระหว่างการจับคู่ ให้ถือเป็นสตริงทึบและรองรับค่าที่ไม่รู้จัก provider อื่นไม่ได้กำหนดความหมายของฟิลด์นี้ และฟิลด์นี้ต่างจาก device_platform
billingobjectรอบที่จ่ายแล้วเฉพาะบัญชีกระเป๋า ห้ามอนุมานซื้อจากยอดเงิน
billingรอบที่จ่ายแล้วเฉพาะบัญชีกระเป๋า ห้ามอนุมานซื้อจากยอดเงิน
period_start_atเริ่มรอบที่จ่ายแล้วจากเซิร์ฟเวอร์
format: date-time
period_end_atสิ้นสุดรอบที่จ่ายแล้วจากเซิร์ฟเวอร์
format: date-time
amount_minorยอดคงที่จากเซิร์ฟเวอร์หน่วยเซนต์ USD ใช้จำนวนเต็มแม่นยำ
minimum: 1 · format: int64
currencyเฉพาะ USD
operation_idรหัสสาธารณะจาก billing.operation_id หรือผลลบ ใช้เดิมในพื้นที่เดิม
stateสถานะคิดเงินหรือการดำเนินการ ไม่ยืนยันตัวตน ออนไลน์ หรือคืนเงินแล้ว
enum: ACTIVE, DELETING, DELETED, COMPENSATED, REVIEW
idตัวระบุบัญชีที่ไม่ซ้ำ (acc_...) ใช้ใน route ที่อิงกับบัญชี
nameชื่อบัญชีที่อ่านได้
providerรหัสช่องทาง ใช้ค่าที่ API ส่งกลับโดยไม่แก้ไขในการเรียกครั้งต่อไป ดูค่าที่ API นี้คืนได้จาก enum ด้านล่าง
enum: telegram, whatsapp, line, twitter, facebook, zalo, tiktok, whatsapp-protocol
regionภูมิภาคทางออกเครือข่ายเริ่มต้นที่เลือกสำหรับบัญชี
statusสถานะ lifecycle ของบัญชี เช่น active
runtime_statusสถานะ runtime ที่ปรับเป็นมาตรฐาน หนึ่งในค่า unknown, starting, running, stopping, stopped, reconnecting, disconnected หรือ error
enum: unknown, starting, running, stopping, stopped, reconnecting, disconnected, error
auth_modeflow การยืนยันตัวตนที่บัญชีใช้: code, qrcode หรือ session โดย TikTok รองรับ qrcode และ session แต่ไม่รองรับการสลับระหว่างสองโหมดนี้ในบัญชีเดิม
capabilities[]ความสามารถที่เปิดใช้สำหรับบัญชี เช่น send_message และ receive_message
metadatalabel สภาพแวดล้อมของคุณเองที่เก็บไว้บนบัญชี
provider_account_refตัวระบุฝั่งผู้ให้บริการที่คุณแนบได้เพื่อเชื่อมโยงบัญชีกับระบบของคุณเอง
proxyproxy ที่ลูกค้ากำหนดไว้อย่างชัดเจน โดยไม่ส่งคืนข้อมูลรับรองของทางออกเริ่มต้นของแพลตฟอร์ม
has_moreระบุว่ารายการบัญชียังมีหน้าถัดไปหรือไม่
next_cursorเคอร์เซอร์แบบ opaque สำหรับหน้าถัดไปของรายการบัญชี คืนค่าเฉพาะเมื่อ has_more=true ให้ส่งกลับเป็น cursor โดยไม่แก้ไขเพื่ออ่านหน้าถัดไป ฟิลด์นี้จะถูกละไว้ในหน้าสุดท้าย
การตอบกลับ
200200 OK
คำขอสำเร็จ ดูตัวอย่างเนื้อหาตอบกลับด้านบน
400Bad Request
เนื้อหาของคำขอ path หรือพารามิเตอร์ไม่ถูกต้อง
401Unauthorized
ส่วนหัว X-Api-Key หายไปหรือไม่ถูกต้อง
403Forbidden
ระบบระบุคำขอได้ แต่ไม่อนุญาตให้ดำเนินการนี้
404Not Found
ไม่พบทรัพยากรที่ร้องขอ โปรดตรวจสอบ error.code ร่วมกับการดำเนินการปัจจุบัน
500Internal Server Error
บริการพบข้อผิดพลาดที่ไม่คาดคิด
เมื่อคำขอล้มเหลว
ตรวจ HTTP และ error.code/numeric_code เก็บ request_id แล้วแก้พารามิเตอร์ ยืนยันตัวตนต่อ หรือตรวจ runtime ตามสาเหตุ ตรวจผลครั้งก่อนก่อนส่งหรือเขียนซ้ำ อ้างอิงรหัสข้อผิดพลาด
อ่านสถานะ HTTP, error.code และ error.numeric_code ร่วมกับคำสั่งที่เรียก รหัสตัวเลขเป็นสตริง เก็บ request_id เพื่อตรวจปัญหา ค่านี้ไม่ใช่คีย์ป้องกันการทำซ้ำหรือรหัสงาน
- invalid_request · 10000 · 400
ตรวจ JSON และฟิลด์ที่จำเป็น
วิธีจัดการและลองใหม่: แก้พารามิเตอร์ตามคำสั่งและเงื่อนไขช่องทางก่อนเรียกใหม่ การส่งคำขอผิดแบบเดิมซ้ำไม่ช่วยแก้ข้อผิดพลาด
JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 400 · 10000
{ "request_id": "req_example", "error": { "code": "invalid_request", "numeric_code": "10000", "message": "Invalid request parameters" } }- invalid_target_workspace · 11003 · 400
เวิร์กสเปซเป้าหมายที่กำหนดทับว่างหรือรูปแบบไม่ถูกต้อง ให้ลบเฮดเดอร์กำหนดทับและใช้ API Key ของเวิร์กสเปซเป้าหมาย
เงื่อนไข: ใช้เมื่อคำขอมีเฮดเดอร์ X-Workspace-Id เพื่อระบุเวิร์กสเปซทับ
วิธีจัดการและลองใหม่: แก้พารามิเตอร์ตามคำสั่งและเงื่อนไขช่องทางก่อนเรียกใหม่ การส่งคำขอผิดแบบเดิมซ้ำไม่ช่วยแก้ข้อผิดพลาด
JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 400 · 11003
{ "request_id": "req_example", "error": { "code": "invalid_target_workspace", "numeric_code": "11003", "message": "Invalid target workspace" } }- invalid_api_key · 11001 · 401
ตรวจว่า API Key ถูกต้องและเปิดใช้งานอยู่
วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป
JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 401 · 11001
{ "request_id": "req_example", "error": { "code": "invalid_api_key", "numeric_code": "11001", "message": "Invalid API key" } }- missing_api_key · 11000 · 401
เพิ่มส่วนหัว X-Api-Key
วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป
ตัวอย่าง · 401 · 11000
{ "request_id": "req_xxx", "error": { "code": "missing_api_key", "numeric_code": "11000", "message": "Missing X-Api-Key header" } }- workspace_override_forbidden · 11002 · 403
คำขอพยายามระบุเวิร์กสเปซทับโดย API Key นี้ไม่มีสิทธิ์ ให้ลบเฮดเดอร์กำหนดทับและใช้ API Key ของเวิร์กสเปซเป้าหมาย
เงื่อนไข: ใช้เมื่อคำขอมีเฮดเดอร์ X-Workspace-Id เพื่อระบุเวิร์กสเปซทับ
วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป
JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 403 · 11002
{ "request_id": "req_example", "error": { "code": "workspace_override_forbidden", "numeric_code": "11002", "message": "Workspace override is not allowed" } }- target_workspace_not_found · 11004 · 404
ไม่พบเวิร์กสเปซที่กำหนดทับหรือใช้งานไม่ได้ ตรวจเจ้าของเวิร์กสเปซ ลบเฮดเดอร์กำหนดทับ และใช้ API Key ของเวิร์กสเปซเป้าหมาย การส่งซ้ำไม่เพิ่มสิทธิ์
เงื่อนไข: ใช้เมื่อคำขอมีเฮดเดอร์ X-Workspace-Id เพื่อระบุเวิร์กสเปซทับ
วิธีจัดการและลองใหม่: ตรวจรหัสเป้าหมาย เจ้าของทรัพยากร และเวิร์กสเปซปัจจุบัน อย่าถือว่าเป้าหมายที่ยืนยันแล้วว่าไม่มีหรือเข้าไม่ถึงเป็นความขัดข้องชั่วคราวที่ควรลองซ้ำอัตโนมัติ
JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 404 · 11004
{ "request_id": "req_example", "error": { "code": "target_workspace_not_found", "numeric_code": "11004", "message": "Target workspace not found" } }- list_accounts_failed · 20000 · 500
รายชื่อบัญชี: บริการไม่สามารถให้ผลการค้นหาที่ใช้ได้
วิธีจัดการและลองใหม่: เก็บ request_id และตรวจรหัสเป้าหมายกับสิทธิ์เข้าถึงของบัญชี ตรวจสาเหตุก่อนอ่านใหม่ การค้นหาล้มเหลวไม่ได้แปลว่าข้อมูลว่างหรือไม่มีทรัพยากร
JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 20000
{ "request_id": "req_example", "error": { "code": "list_accounts_failed", "numeric_code": "20000", "message": "Failed to list accounts" } }