−25%

Windows के सालाना भुगतान पर, 31 अक्टूबर तक। प्लान देखें

EQVPS
शुरू करें

REST API और curl से VPS संभालें: स्थिति, पावर, रीइंस्टॉल, रिन्यूअल

सर्वर ऑर्डर करने के बाद डैशबोर्ड में आप जो कुछ करते हैं — स्थिति देखना, रीबूट, मेट्रिक्स पढ़ना, नाम बदलना, OS रीइंस्टॉल, कुछ महीनों के लिए रिन्यू, रद्द करना और रद्दीकरण वापस लेना — असली जवाबों के साथ कॉपी करने लायक curl कमांड के रूप में।

API से सर्वर ऑर्डर करना एक अनुरोध का काम है। वह 4 API कॉल में VPS ऑर्डर करें में बताया गया है। यह पेज उसके बाद की हर चीज़ के बारे में है: रोज़मर्रा की वे कार्रवाइयाँ जिन्हें आप वरना डैशबोर्ड में क्लिक करके करते, स्क्रिप्ट में चिपकाने लायक curl कमांड के रूप में।

नीचे की हर कमांड हमने प्रकाशित करने से पहले अपने API पर चलाई, और जवाब लौटे हुए नतीजे की छोटी की गई प्रतियाँ हैं।

तैयारी

दो variables कमांड को छोटा रखते हैं:

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"

हर प्रविष्टि का 47HZ7YF जैसा एक id होता है। यही सर्विस कोड है जो बाकी सभी कॉल लेती हैं। फिर एक सर्वर की पूरी तस्वीर:

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 key के बिना ऑर्डर किया, तो 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 लौटाती है और कुछ नहीं बदलता।

OS रीइंस्टॉल करें

यह डिस्क मिटा देता है। API आपसे confirm में सर्वर का मौजूदा hostname लिखवाता है, ताकि गलत सर्विस 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 GET /products में आपके प्लान की available_os सूची से या सर्वर के अपने विवरण से आता है। रीइंस्टॉल बैकग्राउंड में चलता है; status फिर से active होने तक GET /services/{id} पूछते रहें।

रिन्यूअल और बैलेंस

सर्वर हर महीने आपके प्रीपेड बैलेंस से रिन्यू होते हैं। इस सर्वर के लिए लंबी अवधि की कीमत देखने के लिए:

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 होता है। यह क्रिप्टो चेकआउट है: Base, Ethereum या Polygon पर USDT, USDC या ETH। भुगतान 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 एजेंट MCP से अपना VPS खुद कैसे संभालता है और API संदर्भ। अभी सर्वर नहीं है? प्लान चुनें।

सामान्य प्रश्न

क्या VPS ऑटोमेट करने के लिए MCP सर्वर चाहिए?

नहीं। MCP AI क्लाइंट के लिए एक सुविधा है; हर MCP टूल अंदर से वही REST API कॉल करता है। shell स्क्रिप्ट, cron जॉब या CI पाइपलाइन उसी टोकन के साथ सीधे curl इस्तेमाल कर सकती है।

टोकन कहाँ से मिलेगा?

POST /auth/register से (खुद साइन अप करने वाला एजेंट) या डैशबोर्ड से: Settings → API tokens। नए टोकन डिफ़ॉल्ट रूप से एक साल मान्य होते हैं; POST /auth/token/refresh समाप्ति से पहले टोकन को नए से बदल देता है।

क्या गलत कमांड मेरा सर्वर मिटा सकती है?

सिर्फ़ दो कॉल डेटा नष्ट करती हैं: रीइंस्टॉल और तत्काल रद्दीकरण। दोनों तब तक नहीं चलतीं जब तक आप confirm फ़ील्ड में सर्वर का सटीक hostname दोबारा न लिखें। रीबूट, स्टॉप, hostname और रिन्यूअल आपकी फ़ाइलों को नहीं छूते।

रिन्यूअल का भुगतान कैसे होता है?

प्रीपेड बैलेंस से। बैलेंस काफ़ी हो तो सर्वर हर महीने अपने आप रिन्यू होता है; POST /services/{id}/renew एक कॉल में 1, 3, 6 या 12 महीने पहले से चुकाता है। बैलेंस कम हो तो वही कॉल कुछ काटने के बजाय क्रिप्टो चेकआउट लिंक वाला इनवॉइस लौटाती है।

क्या अनुरोधों की सीमा है?

हाँ, प्रति टोकन और प्रति कार्रवाई — जैसे एक मिनट में 10 टोकन रिफ़्रेश, एक मिनट में 20 टिकट। हर कुछ सेकंड में स्थिति देखने वाली स्क्रिप्ट ठीक है; लूप में पावर कार्रवाइयाँ बरसाने वाली स्क्रिप्ट को Retry-After के साथ 429 मिलेगा।

टिप्पणियाँ

अभी तक कोई टिप्पणी नहीं। पहले बनें।

एक टिप्पणी छोड़ें

टिप्पणियाँ दिखने से पहले मॉडरेट की जाती हैं।