Menghubungkan akun
Anda sudah punya akun EQVPS dan ingin skrip atau agen memakainya: ambil token, masukkan ke konfigurasi, jalankan sandbox pertama, dan jaga saldo tetap terisi.
Bagaimana semuanya terhubung
1. Ambil token
Paling mudah: di dasbor buka Pengaturan → Token API, buat token (beri nama sesuai agen, pilih masa berlaku), lalu salin. Token hanya ditampilkan sekali.
Dari baris perintah: masuk dengan email dan kata sandi untuk mendapat token baru. Jika Anda mendaftar dengan kode email dan belum pernah mengatur kata sandi, atur sekali menggunakan token dari dasbor. Akun baru juga bisa dibuat dengan POST /auth/register, yang langsung mengembalikan token.
# 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"Token berlaku 1 tahun (lihat token_expires_at di respons). Perpanjang dengan POST /auth/token/refresh; cabut yang tidak lagi dipakai di Pengaturan.
2. Masukkan ke konfigurasi
Jauhkan token dari kode: ekspor sebagai EQVPS_API_KEY. Klien MCP menerimanya di header 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. Jalankan sandbox pertama
Buat, jalankan kode, hapus. exit_code yang bukan nol adalah hasil biasa dari perintah Anda, bukan galat 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"Mode, tarif, dan contoh Python / Node.js: Sandbox →
4. Isi ulang saldo
Sandbox dan server dibayar dari satu saldo prabayar. Isi ulang di dasbor (Saldo: kripto, Monero, atau kode promo) atau dengan POST /balance/topup, yang mengembalikan tautan pembayaran. GET /balance menunjukkan sisa saldo.
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 cryptoGalat yang mungkin Anda temui
- 401 Unauthenticated — token tidak ada, salah ketik, kedaluwarsa, atau dicabut. Periksa header Authorization: Bearer, buat token baru di Pengaturan, atau masuk lagi.
- 402 insufficient_balance — saldo kosong, jadi sandbox baru tidak bisa dimulai. Isi ulang lalu ulangi permintaan. Sandbox persisten yang berjalan dijeda, bukan dihapus.
- 429 dan 503 berarti permintaan ditolak sebelum apa pun berjalan: tunggu Retry-After lalu kirim lagi. 409 sandbox_paused: isi ulang dan sandbox berlanjut.
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
Komentar
Belum ada komentar. Jadilah yang pertama.