اکاؤنٹ جوڑنا
آپ کا EQVPS اکاؤنٹ پہلے سے ہے اور آپ چاہتے ہیں کہ کوئی اسکرپٹ یا ایجنٹ اسے استعمال کرے: ٹوکن لیں، کنفیگ میں رکھیں، پہلا سینڈ باکس چلائیں اور بیلنس بھرا رکھیں۔
سب کچھ کیسے جڑتا ہے
1. ٹوکن حاصل کریں
سب سے آسان: ڈیش بورڈ میں سیٹنگز ← API ٹوکنز کھولیں، ٹوکن بنائیں (ایجنٹ کے نام پر رکھیں، مدت منتخب کریں) اور کاپی کریں۔ یہ صرف ایک بار دکھایا جاتا ہے۔
کمانڈ لائن سے: نیا ٹوکن لینے کے لیے ای میل اور پاس ورڈ سے لاگ اِن کریں۔ اگر آپ نے ای میل کوڈ سے سائن اپ کیا تھا اور کبھی پاس ورڈ نہیں رکھا، تو ڈیش بورڈ کے ٹوکن سے ایک بار پاس ورڈ رکھ لیں۔ نیا اکاؤنٹ POST /auth/register سے بھی بنایا جا سکتا ہے جو فوراً ٹوکن لوٹاتا ہے۔
# log in with email + password → token
curl -s https://api.eqvps.com/api/v1/eqvps/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"your-password"}'
# → {"token":"eyJ0…","token_type":"Bearer","token_expires_at":"2027-10-03T…","user":{…}}
# signed up with an email code and have no password? set one once
# (authorise with a token from Settings → API tokens)
curl -s https://api.eqvps.com/api/v1/eqvps/auth/set-password \
-H "Authorization: Bearer $EQVPS_API_KEY" -H "Content-Type: application/json" \
-d '{"password":"new-pass-123","password_confirmation":"new-pass-123"}'
# no account yet: register straight from the API (password is optional)
curl -s https://api.eqvps.com/api/v1/eqvps/auth/register \
-H "Content-Type: application/json" -d '{"email":"you@example.com"}'
# extend a token before it expires
curl -s -X POST https://api.eqvps.com/api/v1/eqvps/auth/token/refresh \
-H "Authorization: Bearer $EQVPS_API_KEY"ٹوکن 1 سال کے لیے درست ہے (جواب میں token_expires_at دیکھیں)۔ POST /auth/token/refresh سے بڑھائیں؛ جو استعمال نہیں کرتے انہیں سیٹنگز میں منسوخ کریں۔
2. اسے کنفیگ میں رکھیں
ٹوکن کو کوڈ سے باہر رکھیں: اسے EQVPS_API_KEY کے طور پر ایکسپورٹ کریں۔ MCP کلائنٹس اسے Authorization ہیڈر میں لیتے ہیں۔
# shell / CI secret — keep it out of the code
export EQVPS_API_KEY="eyJ0…"
# SDKs read the same variable (0.2.0+: give your code its secrets as env, not in the source)
pip install -U eqvps # Python
npm i @eqvps/sdk@latest # TypeScript / JavaScript
# Claude Code
claude mcp add --transport http eqvps https://mcp.eqvps.com/mcp \
--header "Authorization: Bearer $EQVPS_API_KEY"
# Cursor, Claude Desktop, other MCP clients (mcp.json)
{
"mcpServers": {
"eqvps": {
"type": "streamable-http",
"url": "https://mcp.eqvps.com/mcp",
"headers": { "Authorization": "Bearer <YOUR_TOKEN>" }
}
}
}3. پہلا سینڈ باکس چلائیں
بنائیں، کوڈ چلائیں، حذف کریں۔ غیر صفر exit_code آپ کی کمانڈ کا عام نتیجہ ہے، HTTP غلطی نہیں۔
API=https://api.eqvps.com/api/v1/eqvps
H="Authorization: Bearer $EQVPS_API_KEY"
SB=$(curl -s -X POST $API/sandboxes -H "$H" -H "Content-Type: application/json" \
-d '{"tariff":"micro"}' | python3 -c 'import sys,json; print(json.load(sys.stdin)["id"])')
curl -s -X POST $API/sandboxes/$SB/run -H "$H" -H "Content-Type: application/json" \
-d '{"language":"bash","code":"uname -sr && python3 --version && node --version"}'
# → {"exit_code":0,"stdout":"Linux 6.1…\nPython 3.12…\nv22…\n","stderr":"",…}
curl -s -X DELETE $API/sandboxes/$SB -H "$H"موڈز، ٹیرف اور Python / Node.js مثالیں: سینڈ باکسز ←
4. بیلنس ٹاپ اپ کریں
سینڈ باکسز اور سرورز ایک ہی پری پیڈ بیلنس سے ادا ہوتے ہیں۔ اسے ڈیش بورڈ میں ٹاپ اپ کریں (بیلنس: کرپٹو، Monero یا پرومو کوڈ) یا POST /balance/topup سے جو ادائیگی کا لنک لوٹاتا ہے۔ GET /balance بتاتا ہے کتنا باقی ہے۔
curl -s $API/balance -H "$H"
# → {"balance":12.4,"currency":"USD","promo_balance":0,"real_balance":12.4,"promo_scope":"sandboxes"}
curl -s -X POST $API/balance/topup -H "$H" -H "Content-Type: application/json" -d '{"amount":10}'
# → {"invoice_id":…,"checkout_url":"https://…"} open the link and pay with cryptoغلطیاں جو آپ کو غالباً نظر آئیں گی
- 401 Unauthenticated — ٹوکن نہیں ہے، اس میں ٹائپنگ کی غلطی ہے، میعاد ختم ہو چکی ہے یا منسوخ ہو چکا ہے۔ Authorization: Bearer ہیڈر چیک کریں، سیٹنگز میں نیا ٹوکن بنائیں یا دوبارہ لاگ اِن کریں۔
- 402 insufficient_balance — بیلنس خالی ہے، اس لیے نیا سینڈ باکس شروع نہیں ہوتا۔ ٹاپ اپ کریں اور درخواست دہرائیں۔ چلتے ہوئے مستقل سینڈ باکسز حذف نہیں ہوتے بلکہ روک دیے جاتے ہیں۔
- 429 اور 503 کا مطلب ہے کہ درخواست کچھ چلنے سے پہلے رد کر دی گئی: Retry-After تک انتظار کریں اور دوبارہ بھیجیں۔ 409 sandbox_paused: ٹاپ اپ کریں اور سینڈ باکس دوبارہ چل پڑے گا۔
HTTP 401 {"message":"Unauthenticated."}
HTTP 402 {"error":"insufficient_balance","message":"Your balance cannot cover this sandbox. Top up (topup_balance / POST /balance/topup) and retry."}
HTTP 429 {"error":"too_many_concurrent", …} → wait Retry-After, then retry
HTTP 503 {"error":"capacity","retry_after":30, …} → wait Retry-After, then retry
تبصرے
ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔