Python SDK для партнёрского API SOVA VPN (ресейл VPN-серверов и конфигов)
Project description
sova-partner — Python SDK партнёрского API SOVA VPN
Тонкий синхронный клиент для ресейла VPN-серверов и конфигов через партнёрский API.
Установка
pip install sova-partner
# или из исходников:
pip install ./partner_sdk
Быстрый старт
from sova_partner import SovaPartner
sova = SovaPartner("sova_live_…") # sova_test_… — песочница (без списаний)
# каталог и цена
cat = sova.catalog()
print(sova.quote(pc=10, term_days=30)["prices"])
# заказать сервер и дождаться готовности (выдача 10 мин – 2 ч)
srv = sova.create_server(country="DE", pc=10, term_days=30) # provider="inferno"/"ultahost" опц.
srv = sova.wait_for_server(srv["server_id"])
# выпустить конфиги
cfg = sova.issue_config(srv["server_id"], protocol="wireguard", name="ноутбук")
print(cfg["config"]) # готовый .conf / URI
sova.rotate_config(cfg["config_id"]) # ротация ключей
sova.revoke_config(cfg["config_id"]) # отзыв (hard-revoke)
sova.renew(srv["server_id"], term_days=30) # продление
Idempotency-Key для create_server / issue_config / renew генерируется
автоматически (можно передать свой аргументом idempotency_key).
Онбординг нового партнёра (без ключа)
from sova_partner import Onboarding
ob = Onboarding()
r = ob.register(name="Моя компания", password="…") # -> claim_token
ob.deposit(r["claim_token"], amount=50) # -> pay_url (CryptoBot)
# ob.deposit_usdt(r["claim_token"], amount=50) # или прямой USDT TRC20
api_key = ob.wait_for_key(r["claim_token"]) # после оплаты -> первый ключ (один раз!)
Первый ключ выдаётся после депозита ≥ min_deposit. Крупный первый депозит даёт бонус на баланс (≥$300 +5% / ≥$1000 +10% / ≥$3000 +15%) и постоянную скидку.
Вебхуки — проверка подписи
from sova_partner import verify_signature
# во входящем HTTP-запросе от SOVA:
ok = verify_signature(
secret=endpoint_secret, # выдан при create_webhook (один раз)
signature_header=request.headers["X-Sova-Signature"],
raw_body=request.body, # СЫРОЕ тело до JSON-парсинга
)
event = request.headers["X-Sova-Event"] # server.ready, config.created, deposit.paid, …
event_id = request.headers["X-Sova-Event-Id"] # дедуп (доставка at-least-once)
События: server.ready / server.failed / server.expiring,
config.created / config.revoked / config.rotated, deposit.paid, balance.low.
Ошибки
Все не-2xx поднимают исключение с .status и .code (машинный detail):
from sova_partner import SovaError, SovaInsufficientBalance, SovaAuthError, SovaRateLimited
try:
sova.create_server(country="DE", pc=10)
except SovaInsufficientBalance: # 402
...
except SovaAuthError as e: # 401/403 (invalid_key / insufficient_scope / ip_not_allowed)
print(e.code)
except SovaRateLimited: # 429
...
except SovaError as e: # прочее (409 idempotency_key_reused, 404, …)
print(e.status, e.code)
Права ключа (scopes)
catalog:read, balance:read, vpn:read, vpn:issue, vpn:revoke,
account:manage. Управление ключами/вебхуками/депозитами/тикетами требует
account:manage (в дефолтные ключи не входит — используйте вход в ЛК или ключ
с этим правом). Ключ можно ограничить по IP (ip_allowlist).
Базовый URL по умолчанию: https://api.sova-vpn.online/partner/v1
(меняется параметром base_url).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sova_partner-0.1.0.tar.gz.
File metadata
- Download URL: sova_partner-0.1.0.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4981b978112405aea94d9fb3bd4f692dde8839aec0f4ba62c9e5963cc2dae33e
|
|
| MD5 |
d5b1dc79825fdfe0e1706b6d9a6534d2
|
|
| BLAKE2b-256 |
0c69821b5391b11a5145b5f170838a325d5bfbcab0af60ca53fe683082957218
|
File details
Details for the file sova_partner-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sova_partner-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b61cb8fc4e1fec617220df1a5e4d927553c9995d8e9612e0a8d33d91aa1e5e2e
|
|
| MD5 |
b9819ba1ca09872240ad8221f93a5f63
|
|
| BLAKE2b-256 |
4f00cf091127c9d05c147c5367554acf57a0004ae1c6b8153a1bee16d01b42a9
|