การสั่งซื้อเซิร์ฟเวอร์ผ่าน API ใช้คำขอเดียว ซึ่งอธิบายไว้ใน สั่งซื้อ VPS ด้วยการเรียก API 4 ครั้ง หน้านี้ว่าด้วยทุกอย่างหลังจากนั้น: งานประจำที่ปกติคุณคลิกในแดชบอร์ด เขียนเป็นคำสั่ง curl ที่วางลงในสคริปต์ได้
ทุกคำสั่งด้านล่างเรารันกับ API ของเราก่อนเผยแพร่ และคำตอบเป็นสำเนาแบบย่อของสิ่งที่ได้กลับมา
เตรียมตัว
ตัวแปรสองตัวช่วยให้คำสั่งสั้นลง:
export API=https://api.eqvps.com/api/v1/eqvps
export EQVPS_TOKEN='paste-your-token-here'
โทเค็นได้จาก POST /auth/register หรือจาก Settings → API tokens ในแดชบอร์ด อย่าให้อยู่ในประวัติ shell ถ้ามีคนอื่นใช้เครื่องด้วย แค่อ่านจากไฟล์ด้วย export EQVPS_TOKEN=$(cat ~/.eqvps_token) ก็พอ
ค้นหาเซิร์ฟเวอร์ของคุณ
curl -s $API/services -H "Authorization: Bearer $EQVPS_TOKEN"
แต่ละรายการมี id เช่น 47HZ7YF นี่คือรหัสบริการที่การเรียกอื่นทุกตัวใช้ จากนั้นคือภาพรวมทั้งหมดของเซิร์ฟเวอร์หนึ่งเครื่อง:
curl -s $API/services/47HZ7YF -H "Authorization: Bearer $EQVPS_TOKEN"
{ "data": {
"id": "47HZ7YF", "status": "active", "queued": false,
"product": { "slug": "nano", "name": "Nano" },
"specs": { "vcpu": 2, "memory_mb": 1024, "disk_gb": 15 },
"hostname": "agent-box",
"vm": { "state": "running", "uptime": 5340 },
"access": { "method": "ssh", "host": "203.0.113.10", "port": 21521, "user": "root", "nat": true, ... } } }
access บอกวิธีล็อกอิน ในแพ็กเกจที่มี IPv4 ของตัวเอง พอร์ตคือ 22 ในแพ็กเกจ NAT คือพอร์ตส่งต่อส่วนตัวของคุณ การเรียกนี้อ่านอย่างเดียว จึงเรียกซ้ำในลูปได้อย่างปลอดภัย
ถ้าคุณสั่งซื้อโดยไม่มีคีย์ SSH รหัสผ่าน root จะแสดงครั้งเดียว:
curl -s "$API/services/47HZ7YF?reveal=1" -H "Authorization: Bearer $EQVPS_TOKEN"
ระหว่างที่เซิร์ฟเวอร์ยังบูตอยู่ คำตอบจะเป็น password_pending และการแสดงครั้งเดียวนั้นยังไม่ถูกใช้ รอครึ่งนาทีแล้วถามใหม่
เปิดปิด: start, stop, reboot
curl -s -X POST $API/services/47HZ7YF/power \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"action": "reboot"}'
action คือ start, stop หรือ reboot เซิร์ฟเวอร์ที่ยังไม่ใช้งาน (ยังสร้างอยู่ หรือถูกระงับเพราะค้างชำระ) จะตอบ 409 Service is not active นั่นไม่ใช่ข้อผิดพลาดของสคริปต์คุณ ให้เช็ก status ก่อน
ค่าสถิติ
curl -s "$API/services/47HZ7YF/metrics?timeframe=day" -H "Authorization: Bearer $EQVPS_TOKEN"
CPU หน่วยความจำ เครือข่าย และดิสก์ในรูปอนุกรมเวลา timeframe คือ hour (ค่าเริ่มต้น), day, week หรือ month เหมาะกับ cron job ที่แจ้งเตือนเมื่อดิสก์โตขึ้นเรื่อย ๆ ตัวนับทราฟฟิกของรอบบิลปัจจุบันอยู่ใน ตรวจความเร็วและทราฟฟิก
เปลี่ยนชื่อเซิร์ฟเวอร์
curl -s -X POST $API/services/47HZ7YF/hostname \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"hostname": "web-01"}'
ชื่อใหม่ถูกตั้งในระบบที่กำลังทำงานโดย guest agent ไม่ต้องรีบูตบน Linux ถ้าเซิร์ฟเวอร์หยุดอยู่ หรือคุณลบ qemu-guest-agent ออก การเรียกจะคืน 409 agent_unavailable และไม่มีอะไรเปลี่ยน
ติดตั้ง OS ใหม่
คำสั่งนี้ล้างดิสก์ API บังคับให้คุณพิมพ์ hostname ปัจจุบันของเซิร์ฟเวอร์ใน confirm เพื่อให้สคริปต์ที่ใช้ id บริการผิดลบเครื่องผิดไม่ได้:
curl -s -X POST $API/services/47HZ7YF/reinstall \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"os_id": 4, "confirm": "web-01"}'
os_id มาจากรายการ available_os ของแพ็กเกจคุณใน GET /products หรือจากรายละเอียดของเซิร์ฟเวอร์เอง การติดตั้งใหม่ทำงานเบื้องหลัง ให้เรียก GET /services/{id} จนกว่า status จะกลับเป็น active
การต่ออายุและยอดเงิน
เซิร์ฟเวอร์ต่ออายุทุกเดือนจากยอดเงินเติมล่วงหน้า ดูราคาของระยะเวลาที่ยาวขึ้นสำหรับเซิร์ฟเวอร์นี้:
curl -s $API/services/47HZ7YF/renew-options -H "Authorization: Bearer $EQVPS_TOKEN"
จ่ายล่วงหน้า เช่น สามเดือน ในการเรียกครั้งเดียว:
curl -s -X POST $API/services/47HZ7YF/renew \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"months": 3}'
months คือ 1, 3, 6 หรือ 12 โดย 12 คิดตามราคารายปีพร้อมส่วนลด คำตอบจะบอก paid_from_balance: true และวันหมดอายุใหม่ ถ้ายอดเงินไม่พอ จะไม่มีการตัดเงิน: คุณจะได้ paid_from_balance: false และ checkout_url สำหรับใบแจ้งหนี้นั้นแทน เมื่อเติมเงินแล้ว POST $API/invoices/{invoice_id}/pay จะจ่ายใบแจ้งหนี้นั้นจากยอดเงิน ถ้ายังไม่พอ จะคืน checkout_url แบบเดียวกันและไม่ตัดเงิน ตรวจและเติมยอดเงิน:
curl -s $API/balance -H "Authorization: Bearer $EQVPS_TOKEN"
curl -s -X POST $API/balance/topup \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"amount": 25}'
คำตอบของการเติมเงินมี checkout_url นี่คือการชำระคริปโต: USDT, USDC หรือ ETH บน Base, Ethereum หรือ Polygon ยอดเงินจะเข้าเมื่อธุรกรรมได้รับการยืนยัน on-chain การจ่ายเงินเป็นขั้นตอนเดียวที่สคริปต์ทำแทนคุณไม่ได้ เว้นแต่จะถือวอลเล็ตเอง
Monero ก็ใช้ได้ แต่เฉพาะการเติมยอดเงินแบบตรวจสอบด้วยมือ: คุณส่ง XMR แจ้ง id ธุรกรรม แล้วเราเติมให้หลังตรวจสอบ ดู ชำระด้วย Monero
ยกเลิก และเปลี่ยนใจ
การยกเลิกแบบปลอดภัยจะให้เซิร์ฟเวอร์ทำงานจนจบรอบที่จ่ายแล้วและแค่ไม่ต่ออายุ:
curl -s -X POST $API/services/47HZ7YF/cancel \
-H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
-d '{"type": "end_of_period", "reason": "moving the project elsewhere"}'
reason ต้องระบุ ไม่กี่คำก็พอ เปลี่ยนใจก่อนถึงวันนั้น?
curl -s -X POST $API/services/47HZ7YF/cancel/undo -H "Authorization: Bearer $EQVPS_TOKEN"
ยังมี "type": "immediate" ด้วย ซึ่งลบเซิร์ฟเวอร์และข้อมูลทันที ต้องใช้ "confirm": "<hostname>" และย้อนกลับไม่ได้ ถ้าไม่ได้ตั้งใจจริง ให้ใช้ end_of_period
รักษาโทเค็นให้ใช้งานได้
โทเค็นใหม่มีอายุหนึ่งปีโดยค่าเริ่มต้น ทุกคำตอบที่ยืนยันตัวตนแล้วมีเฮดเดอร์ X-Token-Expires-At สคริปต์จึงรู้ล่วงหน้าได้ แลกโทเค็นเป็นอันใหม่:
curl -s -X POST $API/auth/token/refresh -H "Authorization: Bearer $EQVPS_TOKEN"
โทเค็นเก่าจะใช้ไม่ได้ทันที ดังนั้นบันทึกอันใหม่ก่อนทำอย่างอื่น
ข้อผิดพลาดที่ควรจัดการ
| รหัส | ความหมาย | สิ่งที่ควรทำ |
|---|---|---|
| 401 | ไม่มีโทเค็น ถูกเพิกถอน หรือหมดอายุ | ต่ออายุหรือสร้างใหม่ |
| 402 | ยอดเงินต่ำเกินไปสำหรับการกระทำที่ใช้ยอดเงินเท่านั้น (เช่น เปลี่ยนแพ็กเกจ) | เติมเงินแล้วเรียกซ้ำแบบเดิม |
| 409 | เซิร์ฟเวอร์ไม่อยู่ในสถานะที่เหมาะสม (ยังไม่ใช้งาน กำลังดำเนินการ ไม่มีอะไรให้ย้อน) | อ่าน message เช็ก status แล้วลองใหม่ภายหลัง |
| 422 | ฟิลด์ผิดหรือขาด | คำตอบบอกว่าฟิลด์ไหน |
| 429 | คำขอมากเกินไป | รอตาม Retry-After |
ทำจากไคลเอนต์ AI แทนสคริปต์? การกระทำเดียวกันมีเป็นเครื่องมือ MCP — ดู AI agent ดูแล VPS ของตัวเองผ่าน MCP อย่างไร และ เอกสารอ้างอิง API ยังไม่มีเซิร์ฟเวอร์? เลือกแพ็กเกจ
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ