文档菜单

按流量计费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 必填,不能为空。每个值是客户可选的按流量计费代理池的authKey。未知或不可选的密钥会返回INVALID_POOL。
level string 必填。取值为country、region或city之一。
country string 小写的地理slug。level为region或city时必填。
region string 小写的地理slug。可选;level为city时,将列表限定到一个州。
q string 可选的搜索文本,去除首尾空白,最多80个字符。
limit integer 整数1-100;默认50。
cursor string 上一页的page.nextCursor,原样传回。
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 level不是country、region或city。
400 INVALID_PARENT region需要country;city需要country。
400 GEO_NOT_ENABLED 所请求的某个代理池关闭了地理定位。
400 GEO_LEVEL_UNSUPPORTED 所请求的某个代理池不支持此level。
400 INVALID_LIMIT / INVALID_CURSOR 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令牌。完整的用户名语法(包括代理池、地理位置和会话参数如何组合)见按流量计费代理。