How to extract dynamic residential proxy credentials and run a first check

After buying dynamic residential traffic, use the documented extract API to receive a complete host, port, username, and password. Do not assemble the username yourself. This page follows Dynamic Resource 2 docs. Not for mainland China.

Buy dynamic residential traffic first, then collect a complete host, port, username, and password. This page follows the official Dynamic Resource 2 guide and dynamic traffic and extract: save the accountId from the purchase response, call extract, and pass the returned fields to your client. Do not assemble or rewrite the username. For the API overview see API integration; for string formats see proxy format. English API getting-started pages live at Quickstart and Authentication.

ZTProxy also offers static residential proxies (billed per IP per month). Static host and auth values are read from the order list after provisioning. Do not apply this extract flow to a static order. Examples are fake placeholders, not production endpoints. Authorized targets only. Not supported in mainland China.

What to prepare

ItemWhere it comes from
Purchased dynamic traffic and account IDConsole or accountId in the purchase response. The documented public product number is dynamic_2; the label in the console is authoritative
Access tokenKeep it on the server only; see Authentication and Quickstart
A check targetAn HTTPS URL you are allowed to request
Product choiceIf you need a fixed exit for the subscription term, use static and rotating vs static

Placeholders only (not production): host proxy.example.invalid, port 10000, user USER_EXAMPLE, password PASS_EXAMPLE_NOT_REAL. Token example TOKEN_EXAMPLE_NOT_REAL, account ID example ACCOUNT_ID_EXAMPLE. Commands follow the docs.

What extract returns

A successful extract returns structured host, port, username, and password fields. For batch extract, read data.proxy.list. In that case the structured fields and formatted_proxy refer only to the first item. formatted_proxy uses the order host:port:username:password. When you put that into a page or a log, still keep credentials off the host so you never emit a literal username:password@host token.

FieldHow to use it
host / portCopy into the client as returned; do not invent the entry hostname
username / passwordUse separate fields; do not build or edit the username
protocolDocs default to socks5. Reaching an HTTPS target through SOCKS5 does not mean HTTP proxy or HTTPS CONNECT is available on this extract path. If the console or another path returns an HTTP proxy, follow that value; see HTTP / SOCKS5
Entry hostCurrent documented implementation: host5.ztproxy.net for the United States, and host4.ztproxy.net for Asia, Europe, other non-US locations, or a global random exit. Always use the host in that extract response

Regular users can extract only their own accounts. Agents can extract only accounts they are allowed to manage. Do not treat an order number as an account ID.

One extract example

Replace the account ID and token with your values. This body requests a global random exit with the documented default SOCKS5. Targeting and sticky sessions are covered in location targeting and sticky sessions.

export ZTPROXY_BASE="https://backend.ztproxy.net/api"
export ZTPROXY_TOKEN="TOKEN_EXAMPLE_NOT_REAL"

curl -X POST "$ZTPROXY_BASE/business/dynamic-accounts/ACCOUNT_ID_EXAMPLE/extract" \
  -H "Authorization: Bearer $ZTPROXY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "protocol": "socks5"
  }'

When you test, pass the returned host, port, and auth as separate flags, for example curl --proxy plus --proxy-user. Do not write username:password@host. See test with curl. If the docs example uses socks5h:// with host and port, keep the protocol consistent with the extract result.

If the console offers the same extract action, follow the labels on screen. You should still receive a complete credential set and leave the username untouched.

Troubleshooting

SymptomCheck first
401Expired token or missing Authorization header. See Authentication
403Extracting an account that is not yours, or an agent acting outside their scope
404Using an order number instead of accountId; list accounts first
400Traffic exhausted, or invalid location or session parameters. See remaining traffic
503Entry or usage temporarily unavailable; do not retry without a limit; keep the time and order number
407 or your own IPWhether you used the complete returned fields, and whether the protocol matches. See error checklist

Keep tokens and proxy passwords on the server or in a secret store. Do not put them in front-end code, public repos, or logs.

Scope and compliance

Use this only against targets you are authorized to access. This is not a bypass guide. Prices follow the console and Pricing (dynamic about $0.40/GB, about $0.20/GB on the 100 TB package; shared static about $1.50 and dedicated about $5 per IP per month). USDT and USDC are accepted; Visa and Mastercard are still being applied for. Not supported in mainland China.

FAQ

Why can't I build the username myself?

The official docs require a full credential set from extract. Clients should not assemble or modify the proxy username. Adding your own country or session suffix often produces failed authentication.

Can I use the sample host and account ID?

No. Replace them with values from the console or the API. The placeholders in this page are not production endpoints.

Is extract HTTP or SOCKS5 by default?

The documented default on this extract path is socks5. Reaching an HTTPS target through SOCKS5 does not mean HTTP proxy or HTTPS CONNECT is available on that path. Follow the protocol you received. The general protocol guide is HTTP / SOCKS5.

How is extract different from a static order?

Dynamic traffic is consumed in GB and credentials come from extract. A static residential IP is relatively fixed for the subscription term, and you read the instance from the order list after provisioning. Do not reuse this extract flow for static orders.

How many proxies can I extract at once?

The docs allow quantity from 1 to 200, default 1. Read batch results from data.proxy.list. That range is not a product concurrency cap or SLA.

Can I use this to bypass login walls?

No. Authorized targets only.

Is the entry host always host4 or host5?

Those names describe the current documented implementation and can differ by region. Always use the host field in the extract response; do not hard-code a hostname.

Which price should I trust?

The console and Pricing.

Next steps

  1. Save the real accountId and extract a complete credential set.
  2. Run a check against an authorized target.
  3. For a specific exit, see location targeting; for a short-lived stable exit, see sticky sessions.