API documentation

Everything you need to authenticate, connect through a mobile exit, and monitor usage from your application.

Quick start

Go from account creation to your first mobile-exit request in four steps.

1

Create an account

Sign up and open the console with trial traffic ready to use.

2

Get your API key

Copy the account API key from the console. You can rotate it at any time.

3

Request credentials

Use the API key to retrieve SOCKS5, HTTP, and HTTPS connection details.

4

Connect your application

Add the returned credentials to your proxy client and send the first request.

1. Retrieve credentials with your API key
curl https://api.taichang.cc/v1/credentials \
  -H "Authorization: Bearer API_KEY"
2. Send the first request with those credentials
curl -x gw.taichang.cc:24001 \
  -U "ipx_demo8f2k-zone-mob-region-us:YOUR_PASSWORD" \
  https://ipinfo.io
Proxy access

Use the same mobile proxy credentials and switch between rotating and sticky behavior in the username.

ItemValue
Gatewaygw.taichang.cc:24001
ProtocolsSOCKS5 / HTTP / HTTPS
AuthenticationUsername and password

Two session modes

A username without session fields rotates. Adding both session and sessTime enables a sticky session.

Rotating mode

A new exit is scheduled for each new connection. The username ends after region.

Rotating mode
curl -x gw.taichang.cc:24001 \
  -U "ipx_demo8f2k-zone-mob-region-us:YOUR_PASSWORD" \
  https://ipinfo.io

Sticky session mode

The same session retains one exit IP for the number of minutes in sessTime.

session is your custom identifier; sessTime is the duration in minutes. The current gateway default maximum is 1,440 minutes.

Sticky mode · retained for 5 minutes
curl -x gw.taichang.cc:24001 \
  -U "ipx_demo8f2k-zone-mob-region-us-session-demo230pnqdnf-sessTime-5:YOUR_PASSWORD" \
  https://ipinfo.io

Username fields

Field order is fixed. Sticky mode requires both session and sessTime.

ParameterFormatExampleDescription
region-zone-mob-region-<region-code>-zone-mob-region-usSelects the mobile exit region and forms part of every username.
session-session-<session-id>-session-demo230pnqdnfYour sticky-session identifier; omit it in rotating mode.
sessTime-sessTime-<minutes>-sessTime-5Sticky duration in minutes; must appear together with session.
Complete sticky-session example
curl -x gw.taichang.cc:24001 \
  -U "ipx_demo8f2k-zone-mob-region-us-session-demo230pnqdnf-sessTime-5:YOUR_PASSWORD" \
  https://ipinfo.io
Language examples

Production-ready SOCKS5, HTTP, and HTTPS examples for each supported language.

curl --socks5-hostname gw.taichang.cc:24001 \
  -U "ipx_demo8f2k-zone-mob-region-us:YOUR_PASSWORD" \
  https://ipinfo.io
REST API

Retrieve credentials, balance, and usage through a consistent JSON API.

Base URL https://api.taichang.cc/v1, with the following request header: Authorization: Bearer API_KEY.

Each account has one API key. Rotating it in the console invalidates the previous key immediately.

Traffic and usage values are integer byte counts (for example, 5368709120 is approximately 5 GiB). Convert them into display units in your client.

GET/v1/credentials

Retrieve proxy credentials

Response
{
  "code": 200,
  "data": {
    "socks5": {
      "host": "gw.taichang.cc",
      "port": 24001,
      "username": "ipx_demo8f2k-zone-mob-region-us",
      "password": "YOUR_PASSWORD"
    },
    "http": {
      "host": "gw.taichang.cc",
      "port": 24001,
      "username": "ipx_demo8f2k-zone-mob-region-us",
      "password": "YOUR_PASSWORD"
    },
    "https": {
      "host": "gw.taichang.cc",
      "port": 24001,
      "username": "ipx_demo8f2k-zone-mob-region-us",
      "password": "YOUR_PASSWORD"
    }
  }
}
GET/v1/account/balance

Get account balance and traffic allowance

Response
{
  "code": 200,
  "data": {
    "balanceBytes": 128849018880,
    "trafficLimitBytes": 2147483648000
  }
}
GET/v1/usage/realtime

Get real-time usage

Response
{
  "code": 200,
  "data": {
    "activeSessions": 128,
    "bandwidthBytesPerSec": 42812500,
    "trafficTodayBytes": 61203283968
  }
}
GET/v1/traffic?startDate=2026-07-01&endDate=2026-07-20

Get traffic usage for a date range

Response
{
  "code": 200,
  "data": {
    "totalBytes": 1610612736000,
    "byDay": [
      {
        "date": "2026-07-20",
        "bytes": 61203283968
      }
    ]
  }
}
Errors and rate limits

A consistent error contract and one predictable rate-limit policy for retries and fallback handling.

CodeHTTP statusDescription
200200Request completed successfully
40001400Validation failed; check the request fields
40101401Authentication failed; the API key is invalid or revoked
40301403The target is blocked by gateway policy
42901429Rate limit exceeded; retry according to Retry-After
50001500Internal service error; retry or contact support

Rate-limit policy

All traffic packages allow unlimited concurrent connections with a unified limit of 200 RPS. Requests above the threshold return 429; retry according to Retry-After.

Need gateway credentials?

Create an account, open the console, and run your first request in a few minutes.