Developer documentation

Reseller API

Connect your CRM or billing system to your ZoltVPN reseller account: read your plans, prices and clients, buy subscriptions from your wallet, and get told about events as they happen.

On this page
  1. What you can do
  2. Quick start
  3. The guide

What you can do

  • See the plans you may sell, with your price and the retail price, and quote any purchase before you make it.
  • Follow your clients: their plan, expiry date, devices and usage.
  • Create clients and renew plans, and sell extra devices, static IPs, extra data and subscription codes, paid from your wallet.
  • Suspend, resume or disconnect a client.
  • Receive webhooks when a code is redeemed, a plan is renewed or a client is about to expire.
  • Send push notifications to your own clients.

A key reaches only your own account, and you choose what each key may do with scopes.

Quick start

  1. Ask your account manager to turn on API access for your account.
  2. In the reseller portal, open API → Keys → Create key, and copy the key when it is shown.
  3. Call the API from your server with the key in the Authorization header:
curl -s https://app.zoltvpn.com/api/reseller-api/v1/me \
  -H "Authorization: Bearer $ZOLT_API_KEY"

The base URL is https://app.zoltvpn.com/api/reseller-api/v1. A machine-readable OpenAPI 3 description is available too.

The guide

Before you start

How to get ZoltVPN Reseller API access: have it turned on, create a key with scopes, an expiry and allowed IPs, and keep the key safe.

Authentication

Authenticate to the ZoltVPN Reseller API with a Bearer key over HTTPS: the base URL, what a key can reach, and a first request with curl.

Scopes

The ZoltVPN Reseller API key scopes (read, purchase, manage and notify), what each one allows, and the error a call outside its scope returns.

Conventions

ZoltVPN Reseller API conventions: camelCase JSON, money in integer US cents, ISO-8601 UTC times, data in bytes, UUIDs, paging and billing terms.

Rate limits

ZoltVPN Reseller API limits per minute and per day, the rate-limit headers on every answer, the 24-hour block, and how to stay inside the limits.

Safe retries

Retry ZoltVPN Reseller API purchases safely with an Idempotency-Key header: a repeat within 24 hours returns the first answer and never charges twice.

Errors

The ZoltVPN Reseller API error format and every error code by HTTP status, from invalid_request and insufficient_credit to rate_limited.

Endpoints

Every ZoltVPN Reseller API endpoint with examples: account, plans and quotes, clients and usage, purchases, codes, wallet and push notifications.

CRM sync

Sync your CRM with ZoltVPN in three Reseller API calls: cache your price list, page through clients by expiry date, then quote and renew safely.

Key safety

Keep ZoltVPN Reseller API keys safe: a secret store, one key per system, allowed IPs and an expiry, the activity log, and revoking a leaked key at once.

Webhooks

Receive ZoltVPN events on your HTTPS endpoint: payload and headers, HMAC-SHA256 signature checks in Node.js, PHP and Python, retries and every event type.

Push notifications

Send push notifications to your own ZoltVPN clients from your CRM: the request, the daily limits, per-client results and the list of messages you sent.