All requests require authentication using an API key passed in the HTTP headers.
Use the jwt_token obtained from the Login API.
All request and response payloads are in JSON format.
| Header Name | Type | Value/Description |
|---|---|---|
| jwt_token | string | jwt_token obtained at login API |
| Content-Type | string | application/json |
| param | type | remark |
|---|---|---|
| code | number | Result code |
| msg | string | Status message |
| data | object | Response data payload |
API
/api/account/loginPOSTSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"uid": 10086,
"jwt_token": "ey06eXAi01JKV10i1C1hb6c101JIUzI1N19.ey9pG3M101JodHRw01BvYxBplnJIZ6hhdGlwLmWvb581LC1hdNQ101JodHRwczovL31JZ6hhdGlwLmWvb581LC1pYXQ10jE3MzK30TEx0DIsImV4CC16MTcz0TC50MMMiuXZGF8YS16eyJ1aMQ10jEMWBg2LC1hY2WvdW501joIZmFu23FqQ6tvb21ZXkuY29tIn19.3-bTMmzqjFg0t_sHzlftRwRxMrlv-zb96NFro0qxaHU",
"expire_at": 1739798382
}
}Request Parameters
| Parameter Name | Type | Required | Example | Remark |
|---|---|---|---|---|
| account | string | Yes | [email protected] | Login account |
| password | string | Yes | 123456 | Login password, must be MD5 hashed for backend |
| remember_me | int | No | 0 | 7-day auto-login: 1=Yes, 0=No |
| auth_key | string | No | hdskhasda | Key for quick login from activation email |
Response Data
| Name | Type | Description | Example |
|---|---|---|---|
| uid | int | User ID | 10086 |
| jwt_token | string | Login success token | ey.0eXAiOiJKV1QiLCJhbGciOiJIUz1fNiJ9.eyJpc3MiOi... |
| expire_at | int | Expiration time | 1739798382 |
API
/api/user/infoGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"uid": 123456,
"account": "raymond083",
"email": "[email protected]",
"token": "aaabbbccc", // api_token
"balance": 92499, // Unit: US Cents
"traffic_left": 8080, // Unit: MB
"trial_status": 1, // Trial eligibility: 1: Eligible; 0: Not eligible
"commission_rate": 0.03 // Cryptocurrency fee rate
}
}Response Data
| Name | Type | Description | Example |
|---|---|---|---|
| uid | int | User ID | 123456 |
| account | string | Username | ray1234 |
| string | User email | [email protected] | |
| token | string | User token | aaabbbccc |
| balance | int | Balance, Unit: US Cents | 92499 |
| traffic_left | int | Traffic remaining, Unit: MB (divide by 1000 for GB) | 8080 |
| trial_status | string | Trial eligibility: 1: Eligible; 0: Not eligible | 1 |
| commission_rate | string | Cryptocurrency fee rate | 0.03 |
API
/api/traffic/usageGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"x": [
"2025-04-21",
"2025-04-22",
"2025-04-23",
"2025-04-24",
"2025-04-25",
"2025-04-26",
"2025-04-27",
"2025-04-28"
],
"y": [
15.05, // Unit: Mb
0,
95.78,
14.42,
0,
0,
0,
0
]
}
}Request Parameters
| Parameter Name | Type | Required | Example | Description |
|---|---|---|---|---|
| sdate | string | Yes | 2025-04-21 | Start date |
| edate | string | Yes | 2025-04-28 | End date |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| x | array | ["2025-04-01"] | X-axis scale - Time |
| y | array | [15.05] | Y-axis scale - Usage (Unit: Mb) |
API
/api/traffic/changelogGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"list": [
{
"type": "Allocation", // Value range: ['Used', 'Add', 'Allocation', 'Recycle']
"amount": 80000,
"after": 142230,
"remark": "FromUidHaiadqa5iaw",
"date_time": "2025-07-24 04:01:09"
},
{
"type": "Allocation",
"amount": 20000,
"after": 62230,
"remark": "FromUidHaiadqa5iaw",
"date_time": "2025-07-24 04:01:09"
}
],
"total": 56
}
}Request Parameters
| Parameter Name | Type | Required | Example | Description |
|---|---|---|---|---|
| sdate | string | Yes | 2025-04-01 | Start date for query |
| edate | string | Yes | 2025-04-02 | End date for query |
| type | string | No | used | Record type: Empty value queries all. Value range: ['used', 'add', 'allocation', 'recycle'] |
| page | int | No | 1 | Pagination parameter (Page number) |
| size | int | No | 20 | Pagination parameter (Page size) |
| export | int | No | 0 | Whether to export data (1=Export) |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| list | object[] | List of changes | |
| type | string | Allocation | Change type |
| amount | int | 142230 | Change amount |
| after | int | 62230 | Remaining after change |
| remark | string | FromUidHaiadqa5iaw | Change remark |
| date_time | string | 2025-07-24 04:01:09 | Change date and time |
| total | int | 56 | Total list count |
API
/api/traffic/detailsGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"total": 1,
"list": [
{
"time": "2025-04-21",
"uid": 8561510800,
"geo": "US",
"region": "",
"count": "15.05 MB",
"username": "[email protected]"
}
]
}
}Request Parameters
| Parameter Name | Type | Required | Example | Description |
|---|---|---|---|---|
| sdate | string | Yes | 2023-01-01 | Start time |
| edate | string | Yes | 2023-01-01 | End time |
| page | int | No | 1 | Pagination parameter (Page number) |
| psize | int | No | 10 | Pagination parameter (Page size) |
| gb | string | No | d | Time aggregation type: d=day, h=hour |
| gbg | int | No | 1 | Show detailed region: 1=show country; 2=show secondary region (state/province) |
| subid | int | No | -1 | Account ID: Sub-account; -1: All; 0:Whitelisted IPs; |
| export | int | No | 0 | Whether to export (1=Export) |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| total | int | 10 | Total count of data list |
| list | object[] | List of details | |
| time | string | 2025-04-01 | Time |
| uid | number | 123456 | User ID |
| geo | string | US | Country/Region code |
| region | string | Region name (if detailed) | |
| count | string | 15.05 MB | Usage amount |
| username | string | [email protected] | Username |
API
/api/order/pricemenuGETSuccess Response
{
"code": 0,
"msg": "Success",
"data": [
{
"id": 101,
"title": "1GB",
"traffic_gb": 1,
"per_gb_price": 320,
"price": 320,
"recommend_tips": "",
"default_checked": 0,
"is_top": 1 // Whether pinned: 1=Yes; 0=No
}
]
}Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| id | int | 101 | Package ID |
| title | string | 1GB | Package name |
| traffic_gb | int | 1 | Traffic amount (GB) |
| per_gb_price | int | 320 | Price per GB |
| price | int | 320 | Total price |
| recommend_tips | string | Save 37% | Discount tips |
| default_checked | int | 0 | Wether selected by default |
| is_top | int | 1 | Whether pinned |
API
/api/order/packagesGETRequest Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| old* | string | No | 1235666 | Order ID (Assuming 'old' is a typo for 'oid' or 'order_id') |
| pay_type | string | No | balance | Payment method. Value range: ["alipay", "balance", "cryptomus", "hexaone", "ainvallex/card", "ainvallex/alipay-hk", "ainvallex/goodje-pay", "dukpay/sheer-pay", "dukpay/bank-card", "dukpay/yoomoney", "dukpay/tinkoff-pay", "dukpay/sbp"] |
| sdate | string | Yes | 2025-01-01 | Order start time |
| edate | string | Yes | 2025-02-01 | Order end time |
| page | int | No | 1 | Pagination parameter (Page number) |
| size | int | No | 10 | Pagination parameter (Page size) |
Note: old likely intended to be order_id or oid.
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| total | int | 22 | Total list count |
| list | object[] | List of changes | |
| id | int | 302392746 | Order ID |
| price | int | 2500 | Payment amount, Unit: US Cents |
| pay_type | string | balance | Payment method |
| add_time | int | 1739870415 | Order creation time (timestamp) |
| quantity | int | 1 | Traffic amount, Unit: GB |
API
/api/dynamic/gatewaysGETSuccess Response
{
"code": 0,
"msg": "success",
"data": [
{
"host": "geo.redhatip.com",
"port": 32345
}
]
}Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| host | string | geo.ipcook.com | Gateway domain |
| port | int | 32345 | Gateway port |
API
/api/dynamic/stockGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"uid": 10086,
"jwt_token": "ey06eXAi01JKV10i1C1hb6c101JIUzI1N19.ey9pG3M101JodHRw01BvYxBplnJIZ6hhdGlwLmWvb581LC1hdNQ101JodHRwczovL31JZ6hhdGlwLmWvb581LC1pYXQ10jE3MzK30TEx0DIsImV4CC16MTcz0TC50MMMiuXZGF8YS16eyJ1aMQ10jEMWBg2LC1hY2WvdW501joIZmFu23FqQ6tvb21ZXkuY29tIn19.3-bTMmzqjFg0t_sHzlftRwRxMrlv-zb96NFro0qxaHU",
"expire_at": 1739798382
}
}Request Parameters
| Parameter Name | Type | Required | Example | Description |
|---|---|---|---|---|
| c | int | Yes | 1 | Whether to return child list |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| id | int | 1 | Country ID |
| name | string | US | Country code |
| stock | boolean | true | Whether in stock |
| child | object[] | Child list (regions/states) |
API
/api/dynamic/citysGETSuccess Response
{
"code": 0,
"msg": "success",
"data": [
{
"id": 80804,
"name": "Dallas",
"enname": "Dallas"
},
{
"id": 80805,
"name": "Houston",
"enname": "Houston"
}
]
}Request Parameters
| Parameter Name | Type | Required | Description |
|---|---|---|---|
| g | int | Yes | geo_id |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| id | int | 80004 | Region/City ID |
| name | string | Dallas | Region/City name |
| enname | string | Dallas | Region/City name (English) |
API
/api/auth/sub_listGETSuccess Response
{
"code": 0,
"msg": "success",
"data": [
{
"id": 123456,
"username": "1",
"password": "1",
"traffic_left": 12120, // Remaining traffic Unit: MB, divide by 1000 for GB
"traffic_used": 0, // Used traffic Unit: MB, divide by 1000 for GB
"remark": "",
"add_time": 1741148830,
},
{
"id": "a1adqa5iks",
"username": "12345678891111126",
"password": "12345678891111135",
"traffic_left": 20,
"traffic_used": 0,
"remark": "111",
"add_time": 1741160175,
}
]
}Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| id | int | 123456 | Sub-account ID |
| username | string | aa41160175 | Sub-account username |
| password | string | aa41160175 | Sub-account password |
| traffic_left | int | 20 | Remaining traffic (MB) |
| traffic_used | int | 10 | Used traffic (MB) |
| remark | string | 111 | Remark |
| add_time | int | 1741160175 | Addition time (timestamp) |
API
/api/auth/passaddPOSTSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"id": "aiadqa5i5d"
}
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| username | string | Yes | suhkhnkjCV1WS2 | Username, 12-24 characters, case-sensitive |
| password | string | Yes | USUUV882sxxa | Password, 12-24 characters, case-sensitive |
| traffic_gb | float | Yes | 0.01 | Initially allocated traffic, Unit: GB, range 0.01 - 10000 |
| remark | string | Yes | hello | Auth remark |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| id | string | aiadqa5i5d | Auth ID |
API
/api/auth/passdeleteGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {}
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| account_id | string | Yes | suhkhnkj | Auth ID |
API
/api/auth/passupdateGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {}
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| username | string | Yes | suhkhnkjCV1WS2 | Username, 12-24 characters, case-sensitive |
| password | string | Yes | USUUv882sxxa | Password, 12-24 characters, case-sensitive |
| account_id | string | Yes | aiadqa5lkn | Sub-auth ID |
API
/api/auth/trafficupdateGETSuccess Response
{
"code": 0,
"msg": "success",
"data": []
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| account_id | string | Yes | aiadqa5l5d2 | Auth ID |
| traffic_gb | float | Yes | 0.01 | Traffic to allocate, Unit: GB, range 0.01 - 10000 |
| type | string | Yes | add | Allocation type: add/minus => add/subtract |
API
/api/dynamic/genipsGETRequest Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| auth | string | Yes | ip | Authentication mode: pwd -> Username/Password auth, ip -> Whitelist IP auth |
| g | string | Yes | US | Country ISO code. Example: g=GB or g=GB_city_Barnes (for city) |
| protocol | string | No | http | Protocol: socks5/http |
| n | int | Yes | 1 | Quantity |
| sign | string | Yes | 12sad54dsa | MD5 hash of user token |
| accessid* | int | Yes | 123456 | User ID |
| r | string | No | randomize | Required when auth is pwd. Values: randomize/sticky |
| i | string | No | 12m | IP rotation interval. Required when auth is pwd and mode (r) is sticky |
| f | int | No | 1 | Required when auth is pwd. Values: 1/2/3/4 (Meaning likely documented elsewhere) |
| sub_uid | int | No | 123456 | Sub-auth ID (Required when auth is pwd) |
| h | string | No | geo.ipcook.com | Hostname (Required when auth is pwd) |
| p | int | No | 32156 | Port (Required when auth is pwd) |
API
/api/auth/remarkupdateGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {}
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| username | string | Yes | suhkhnkjCV1WS2 | Username, 12-24 characters, case-sensitive |
| password | string | Yes | USUUv882sxxa | Password, 12-24 characters, case-sensitive |
| account_id | string | Yes | aiadqa5lkn | Sub-auth ID |
API
/api/dynamic/whiteipgetGETSuccess Response
{
"code": 0,
"msg": "success",
"data": [
"127.0.0.1:1111",
"127.0.0.1:1122",
"127.0.0.1:1133",
"127.0.0.1:1144",
"127.0.0.1:1155"
]
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| g | int | Yes | 1 | Region ID |
| n | int | Yes | 1 | Quantity |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| data | string[] | IP:Port array |
API
/api/auth/whiteipaddGETSuccess Response
{
"code": 0,
"msg": "success",
"data": []
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| ip | string | Yes | 1.2.3.45 | IPv4 address |
| remark | string | No | hello | IP remark |
API
/api/auth/whiteipupdateGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {}
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| ip | string | Yes | 1.2.3.4 | IP address to update |
| remark | string | Yes | suhkhnkjCV1WS2 | Remark, max 500 characters, single/double quotes not allowed |
API
/api/auth/whiteipgetGETSuccess Response
{
"code": 0,
"msg": "success",
"data": {
"total": 13,
"list": [
{
"ip": "127.0.0.1:1111",
"remark": "hello",
"add_time": 1740139633
},
{
"ip": "127.0.0.1:1122",
"remark": "hello",
"add_time": 1740139836
},
{
"ip": "127.0.0.1:1133",
"remark": "hello",
"add_time": 1740139886
},
{
"ip": "127.0.0.1:1144",
"remark": "hello",
"add_time": 1740139788
}
]
}
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| keyword | string | No | suhkhnkjCV1WS2 | Search keyword |
| order | string | No | ip | Sort field: 'ip', 'add_time' |
| ordered | string | No | asc | Sort direction: asc/desc |
| page | int | No | 1 | Page number, default 1 |
| size | int | No | 10 | Page size, default 10 |
Response Data
| Name | Type | Example | Description |
|---|---|---|---|
| total | number | 10 | Total list count |
| list | object[] | List of whitelisted IPs | |
| ip | string | 127.0.0.1:1111 | IP address |
| remark | string | 11 | Remark |
| add_time | number | 1740139788 | Addition time (timestamp) |
API
/api/auth/whiteipdeleteGETSuccess Response
{
"code": 0,
"msg": "success",
"data": []
}Request Parameters
| Parameter Name | Type | Required | Example | Remarks |
|---|---|---|---|---|
| ip | string | Yes | 127.0.0.1:1111 | IPv4 address |