Before you buy dynamic residential traffic, or place or renew a static residential IP, confirm the wallet balance, not whether a single proxy request succeeded. The official Balance docs say to check the account balance before creating or renewing an order. If funds are short, the create or renew call returns a non-zero code or an HTTP error. The documented messages are usually 「用户余额不足」 or 「目标用户余额不足」 (insufficient user or target-user balance).
This is not a rewrite of how to check remaining dynamic traffic. Traffic quota is the byte ledger for bandwidth you already bought. Balance is the wallet used to pay for new purchases, renewals, or adjustments. For top-ups, see USDT TRC20. For pricing structure, see GB vs IP billing. Authorized targets only. Not supported in mainland China.
What to prepare
| Item | Where it comes from |
|---|---|
| A signed-in console session, or an API token | The console shows balance directly; the API requires a login first, see how to authenticate |
| Balance endpoints | Official docs describe a dashboard overview and a current-user balance call |
| Optional billing records | Use these to confirm a top-up or charge posted, see billing records |
Placeholders only (not production): token example TOKEN_EXAMPLE_NOT_REAL. Do not treat sample balance figures in docs as your live account. This page does not need a proxy host; placeholders such as proxy.example.invalid are unrelated to a balance check.
Console versus API
Most buyers only need the console figure before they top up or place an order. If you reconcile with the API, official docs provide two paths. Do not mix them with dynamic-traffic usage endpoints.
| Endpoint | What it returns | When to use it |
|---|---|---|
GET /open/app/dashboard/info/v2 | Dashboard overview for the current user, including balance and resource stats | When you also want the overview |
GET /open/app/user/balance/current | Balance for the signed-in user only | When you only need the wallet figure |
| Console balance | Label follows the live UI | Everyday check before ordering |
The API base URL is https://backend.ztproxy.net/api. Authenticated calls must include a valid access token. Querying balance does not create an order and does not debit the wallet.
Example: current-user balance
export ZTPROXY_BASE="https://backend.ztproxy.net/api"
export ZTPROXY_TOKEN="TOKEN_EXAMPLE_NOT_REAL"
curl -X GET "$ZTPROXY_BASE/open/app/user/balance/current" \
-H "Authorization: Bearer $ZTPROXY_TOKEN"
Send the token in the Authorization header, not in the URL. On HTTP 401, sign in again from the authentication docs instead of retrying the same balance call indefinitely. The balance docs do not freeze a single official JSON field name as the only wallet key, so read the live console and response, then cross-check billing records.
If the balance is too low
| Situation | What to do |
|---|---|
| Create or renew returns insufficient-balance messages | Top up or reduce the order, then submit again; do not retry the same underfunded request |
| You already transferred USDT, but the balance has not changed | Confirm the top-up status, review billing records, then query balance again |
| The wallet has funds, but dynamic traffic is exhausted | That is a traffic-quota issue, not a wallet issue; see remaining traffic |
| You only need a spend history | Open billing records; you do not need a new order |
For a short API landing page, see API integration. This article does not reprint the OpenAPI and does not invent settlement times or minimum top-up amounts.
Compliance and scope
Use this only on authorized targets. Do not treat this page as a bypass tutorial. Prices follow the console and Pricing (dynamic about $0.40/GB, about $0.20/GB for the 100 TB package; static shared about $1.50 and exclusive about $5 per IP per month). USDT/USDC are available; Visa/Mastercard are still being applied for. Not supported in mainland China.
FAQ
Is account balance the same as remaining dynamic traffic?
No. Balance pays for new purchases or renewals. Remaining dynamic traffic is the byte quota on resources you already bought. Check both, but do not merge them into one number.
Do I need an order number to check balance?
The official balance endpoints query the signed-in user. They do not need an order number to return the wallet figure. Use billing records to inspect a specific charge or top-up.
Should I call the dashboard or the current-balance endpoint?
Use the current-user balance endpoint when you only need the wallet figure. Use the dashboard endpoint when you also want the overview, which the docs say includes balance and resource stats. Both require a valid token.
The API says funds are insufficient. Should I keep submitting the order?
No. Top up or reduce the purchase, confirm the balance, then place or renew the order.
I just topped up. Why is the balance unchanged?
Confirm the top-up status and the billing record, then query balance again. Do not create more top-up orders just because the wallet has not moved yet. See USDT top-up.
Can a regular user look up someone else's balance?
This page only covers the signed-in user's own balance. The "target user" insufficient-balance message appears when an order is created or renewed for a specified user. That is not permission to browse other wallets.
Can a balance change tell me a static IP is ready?
No. A debit only shows that a charge may have been accepted or recorded. Whether the static resource is usable still depends on the order list and status; see buy a static residential IP.
Where do prices come from?
Follow the console and Pricing. Amounts in docs or samples are not a live quote.
Next steps
- Check the figure in the console or with the current-balance endpoint.
- Top up if needed, and confirm the record in billing history.
- When the balance is enough, buy dynamic traffic or a static IP.