הזמנת שרת דרך ה-API היא בקשה אחת. זה מוסבר בהזמנת VPS ב-4 קריאות API. העמוד הזה עוסק בכל מה שבא אחר כך: הפעולות השגרתיות שאחרת הייתם לוחצים עליהן בלוח הבקרה, כתובות כפקודות 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 שמתריעה כשהדיסק ממשיך לגדול. מוני התעבורה לתקופת החיוב הנוכחית נמצאים בבדיקת מהירות ותעבורה.
שינוי שם השרת
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 ושום דבר לא משתנה.
התקנה מחדש של מערכת ההפעלה
זו מוחקת את הדיסק. ה-API מחייב אתכם להקליד את ה-hostname הנוכחי של השרת ב-confirm, כך שסקריפט עם מזהה שירות שגוי לא יוכל למחוק את המכונה הלא נכונה:
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, מגישים את מזהה העסקה, ואנחנו מזכים אחרי אימות. ראו תשלום ב-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 מתחזק בעצמו את ה-VPS שלו דרך MCP ואת תיעוד ה-API. עוד אין לכם שרת? בחרו תוכנית.
תגובות
אין עדיין תגובות. היו הראשונים.