按流量计费API
按流量计费(PPG)代理池、地理定位取值和账户余额。
代理池#
GET /api/v1/pay-per-gb/pools
Authorization: Bearer lit_...
完整列表:账户可选择的每个代理池,始终带有page.nextCursor: null。不接受limit或cursor。
{
"data": [
{
"name": "Residential",
"proxiesType": "residential",
"authKey": "residential-main",
"pricePerGb": "4.50",
"httpPort": 1337,
"socks5Port": 5337,
"udp": true,
"hubs": [
{ "id": "us-11", "name": "New York, NY", "hostname": "hub-us-11-1.litport.net" },
{ "id": "eu-1", "name": "Amsterdam", "hostname": "hub-eu-1.litport.net" }
],
"geoLevels": ["country", "region", "city"]
}
],
"page": { "nextCursor": null }
}
authKey是此API公开的唯一代理池标识,也是要放入代理用户名的值;不会返回任何内部目录ID。pricePerGb是十进制字符串,已按账户方案折扣调整。它是完整的有效费率,而不是取整后的显示价格,因此可以根据计费字节数和该值复现一笔费用。httpPort和socks5Port是该代理池代理类型的入口端口。当代理池通过SOCKS5端点承载UDP时,udp为true;HTTP代理只承载TCP。hubs列出可以路由该代理池的节点。geoLevels按从大到小的顺序列出该代理池支持的地理定位级别,代理池没有地理定位时为[]。
本文档中的示例标识符和节点均为示意。
地理位置#
GET /api/v1/pay-per-gb/geo
Authorization: Bearer lit_...
地理定位取值的分页列表:一组代理池实际支持的国家、州/省或城市取值,这样被地理屏蔽的代理请求(country/region/city参数不被Litport识别,或没有对应的出口容量)就可以得到纠正,而不必再次猜测。
| 参数 | 类型 | 规则 |
|---|---|---|
pool |
string, comma-separated | 必填,不能为空。每个值是客户可选 |
level |
string | 必填。取值为country、re |
country |
string | 小写的地理slug。level为 |
region |
string | 小写的地理slug。可选;lev |
q |
string | 可选的搜索文本,去除首尾空白,最 |
limit |
integer | 整数1-100;默认50。 |
cursor |
string | 上一页的page |
curl --get 'https://litport.net/api/v1/pay-per-gb/geo' \
-H "Authorization: Bearer $LITPORT_API_KEY" \
--data-urlencode 'pool=residential-main' \
--data-urlencode 'level=region' \
--data-urlencode 'country=us' \
--data-urlencode 'limit=50'
{
"data": [
{ "value": "california", "label": "California" },
{ "value": "new-york", "label": "New York" }
],
"page": { "nextCursor": null }
}
data是每个所请求代理池在给定level上都支持的取值的交集,因此返回的取值保证可以同时用于所有这些代理池。每个选项的value是要作为对应的country、region或city代理用户名参数发送的准确的小写slug;label是显示名称,国家级选项还可能带有emoji。q按不区分大小写、忽略标点的子串匹配,用value或label筛选data。
城市选项还带有region和regionLabel,即该城市所在的州。城市目标的用户名需要在city旁边带上这个region,例如_country-de_region-berlin_city-berlin,因为不同州的城市slug会重复。没有region参数时,level=city列出该国所有城市;带上它时,只列出该州的城市。
地理位置错误#
先检查代理池的geoLevels,以避免两个GEO_错误。
| 状态码 | 错误码 | 含义 |
|---|---|---|
400 |
INVALID_POOL |
pool缺失、未知,或此账户无法选择。 |
400 |
INVALID |
level不是country、region或city。 |
400 |
INVALID |
region需要country;city需要country。 |
400 |
GEO |
所请求的某个代理池关闭了地理定位 |
400 |
GEO |
所请求的某个代理池不支持此level。 |
400 |
INVALID / INVALID |
limit不在1到100之间,或cursor不是此列表返回过的值。 |
余额#
GET /api/v1/pay-per-gb/balance
Authorization: Bearer lit_...
用它来解释因余额不足(错误码13)而失败的代理请求,而无需猜测原因。
{
"data": {
"balance": {
"unitsActive": "12.345678901234",
"unitsReserved": "0.5",
"unitsAvailable": "11.845678901234",
"unitsExpireAt": "2026-12-01T00:00:00.000Z"
},
"plan": {
"id": "pro-monthly",
"expiresAt": "2026-10-01T00:00:00.000Z"
}
}
}
unitsActive、unitsReserved和unitsAvailable是十进制字符串,因此客户端不会因浮点舍入而丢失精度。unitsReserved为非负数,表示当前被进行中的计费事务占用、尚未最终确定的部分。unitsAvailable等于unitsActive减去unitsReserved,且带符号:当预留超过有效余额,或已完成的运行被迫在可用余额之外计费时,它会变为负数。当unitsAvailable等于或接近零时,应认为该请求有出现余额不足错误的风险。unitsExpireAt是最先到期的有效余额的时间戳,没有安排到期的余额时为null。
plan.id是当前有效方案的标识符,账户没有有效方案时为null。plan.expiresAt是该方案的到期时间戳,没有有效方案时为null。
此端点只报告余额。它不返回邮箱、姓名或任何其他账户资料字段。
按流量计费令牌#
PPG令牌的poolSelection(见令牌)指明其固定的代理池,或报告必须由代理用户名来选择代理池。用GET /tokens?type=ppg列出账户的PPG令牌。完整的用户名语法(包括代理池、地理位置和会话参数如何组合)见按流量计费代理。