免费代理API
GET /api/free-proxy返回Litport当前公开的免费代理观测记录。无需认证。
请求#
curl --get 'https://litport.net/api/free-proxy' \
--data-urlencode 'country=de' \
--data-urlencode 'protocol=http' \
--data-urlencode 'uptimeRating=90' \
--data-urlencode 'sortBy=responseTimeMs_asc' \
--data-urlencode 'limit=50'
| 参数 | 类型 | 默认值 | 当前行为 |
|---|---|---|---|
country |
string | all | 不区分大小写的ISO-2代码。该值会转为大写;不应用别 |
limit |
integer | 50 | 可接受范围10–1000。无效或 |
page |
integer | 1 | 可接受范围1–1000。无效或超 |
sortBy |
string | pingAt_desc | 字段:ping |
anonymity |
string | all | 精确筛选:transparent |
anonymity |
string | all | 已弃用的别名:high = anonymous或elite, |
protocol |
string | all | 精确筛选,例如http、http |
list |
string | all | 命名的生成列表预设:https( |
uptimeRating |
integer | 无 | 最低24小时在线率百分比,1–1 |
response |
integer | 无 | 最长HTTP响应时间(毫秒),1 |
checked |
integer | 无 | ping |
format |
string | json | json、csv、txt或txt |
download |
flag | 关闭 | 对支持的格式传入该参数时,以附件 |
country使用不区分大小写的ISO-2代码,查询时会转为大写。它没有别名表:请使用country=gb;country=uk可能返回空数组。PPG代理用户名的兼容行为不同。
响应行为#
默认的JSON响应是纯数组,没有data包装,也没有总数或hasMore值。分页是“盲”的:页偏移量为(page - 1) * limit,空数组表示该页没有匹配的行。
底层数据集可能最多滞后120秒,响应还会在此基础上发送Cache-Control: public, max-age=60,因此响应最多可能比最近一次检测滞后约3分钟;轮询频率高于缓存窗口时会返回相同的行。在此版本中,无效的数值参数和无效的sortBy值会被静默忽略,保留其默认值。未知的精确筛选值通常返回空数组,而不是400响应。
checkedWithinMin只保留在请求的1–1440分钟窗口内检测过的代理。它会排除晚于请求时间的时间戳。为保持兼容,分页端点没有默认的新鲜度筛选。
[
{
"protocol": "http",
"host": "192.0.2.10",
"port": 8080,
"externalIp": "192.0.2.10",
"geoCountry": "US",
"https": true,
"anonymity": "elite",
"anonymityRating": 100,
"responseTimeMs": 420,
"uptimeRating": 97,
"pingAt": "2026-08-25T12:00:00.000Z"
}
]
本文档中的示例地址是为文档保留的,并非真实可用的代理。
JSON字段#
| 字段 | 类型 | 含义 |
|---|---|---|
protocol |
string | 代理协议。 |
host |
string | 代理主机名或IP地址。 |
port |
integer | 代理端口。 |
externalIp |
string | 观测到的出口IP。 |
geoCountry |
string | 出口国家(ISO-2)。 |
geo |
string | 用于显示的国家旗帜。 |
geoRegion |
string | 观测到的出口州/省。 |
geoCity |
string | 观测到的出口城市。 |
geoTimezone |
string | 观测到的出口时区。 |
asn |
integer or string | 观测到的自治系统编号;旧的观测记 |
asnOrgName |
string | 观测到的网络所属组织。 |
https |
boolean | 通过该代理以隧道方式发送HTTP |
anonymity |
string | 测得的匿名级别:transpar |
anonymity |
integer | 归一化的匿名评分。 |
anonymity |
string | 已弃用的别名:high = anonymous或elite, |
anonymity |
integer | 已弃用的别名,等同于anonym |
response |
number | 测得的HTTP响应时间,单位毫秒 |
response |
integer | 归一化的响应时间评分。 |
uptimeRating |
integer | 取整后的24小时在线率百分比。 |
uptime7d |
number | 7天在线率百分比,保留1位小数。 |
checks7d |
integer | 计入7天在线率的检查次数。 |
uptime24h |
number | 24小时在线率百分比,保留1位小 |
checks24h |
integer | 计入24小时在线率的检查次数。 |
sourcesCount |
integer | 该代理被观测到的来源列表数量。 |
response |
number | 近期存活检查的滚动中位延迟,可能 |
lastAliveAt |
date-time | 该代理最近一次通过存活检查的时间 |
createdAt |
date-time | Litport首次观测到该代理的 |
pingAt |
date-time | Litport最近一次检查该代理 |
createdAt记录Litport首次发现该代理的时间。pingAt记录最近一次检测,是判断新鲜度的依据。https表示通过该代理发出的HTTPS请求是否以有效且受信任的证书完成;在测量之前为null。anonymity表示代理暴露了多少自身和调用方的信息(transparent、anonymous、elite或unknown);anonymityLevel是为兼容而保留的已弃用的双值别名。
一致性快照#
GET /api/free-proxy/snapshot返回一个完整的、经一致筛选的数据版本。默认使用checkedWithinMin=30,接受与列表端点相同的筛选条件(page、limit、sortBy、format和download除外),最多返回20,000行,按新鲜度排序。无效的checkedWithinMin输入返回400。
{
"generatedAt": "2026-09-09T22:40:12.000Z",
"count": 2121,
"totalCount": 2121,
"truncated": false,
"maxAgeMin": 30,
"proxies": []
}
两个端点都提供ETag和Last-Modified,用于条件请求。请将返回的ETag放入If-None-Match发送;匹配且有效的请求只有在其当前筛选响应计算完成之后,才会收到304 Not Modified。
CSV和文本格式#
# CSV
curl 'https://litport.net/api/free-proxy?format=csv&limit=25'
# host:port, one proxy per line
curl 'https://litport.net/api/free-proxy?format=txt&limit=25'
# protocol://host:port, one proxy per line
curl 'https://litport.net/api/free-proxy?format=txt-proto&limit=25'
对受支持的格式使用download=1可请求附件形式。CSV以text/csv返回;文本格式使用text/plain;JSON使用application/json。
JavaScript示例#
const url = new URL('https://litport.net/api/free-proxy')
url.searchParams.set('country', 'us')
url.searchParams.set('limit', '25')
const response = await fetch(url)
if (!response.ok) throw new Error(`HTTP ${response.status}`)
const proxies = await response.json()
Python示例#
import json
import urllib.parse
import urllib.request
query = urllib.parse.urlencode({"country": "us", "limit": 25})
with urllib.request.urlopen(f"https://litport.net/api/free-proxy?{query}") as response:
proxies = json.load(response)
开发者资源#
浏览免费代理IP列表,可查看当前数据,在浏览器中筛选,并复制请求URL用于您自己的测试。
通过免费代理IP列表源码了解已发布的数据集,或在将API集成到应用程序时参阅免费代理SDK源码。
SDK#
请选择适合您运行环境的客户端。每个客户端都会获取并筛选代理记录;如何使用这些记录由您的应用决定。
| 运行环境 | 安装 | 软件包和参考 |
|---|---|---|
| JavaScript / TypeScript | npm install @litportnet |
npm包 |
| 通过JSR使用Java |
npx jsr add @litportnet |
JSR包和API参考 |
| C# / .NET | dotnet add package Litportnet |
.NET包 |
| PHP | composer require litportnet |
PHP包 |
| Ruby | gem install litportnet-free-proxy-sdk |
Ruby包 |
| Python | pip install litportnet-free-proxy-sdk |
PyPI包 |
| Go | go get github |
Go包和参考 |
| Rust | cargo add litportnet-free-proxy-sdk |
Rust crate · API参考 |
| Perl | cpanm Web |
CPAN发行包和参考 |
| Elixir | 在mix.exs中添加{: |
Hex包 · HexDocs参考 |
| Dart | dart pub add litportnet |
pub.dev包 |
| R | install |
R-universe包 |
API工具#
Postman集合包含可直接运行的请求,涵盖筛选、快照以及CSV和文本导出。无需API密钥。
使用Docker CLI镜像导出记录,无需安装本地语言运行环境:
docker run --rm litportnet/free-proxy-sdk:0.1.0 --protocol socks5 --limit 20 --format json
该容器获取代理记录,不运行代理服务器。
通过MCP服务器连接AI智能体。该服务器以@litportnet/free-proxy-mcp发布,并在官方MCP Registry中以io.github.litportnet/free-proxy-mcp登记。可将其添加到任何兼容MCP的客户端:
{
"mcpServers": {
"free-proxy": {
"command": "npx",
"args": ["-y", "@litportnet/free-proxy-mcp"]
}
}
}
它提供三个只读工具:按条件筛选列出代理、选取排名最高的代理,以及汇总当前快照。与上面的所有客户端一样,它只返回代理记录,不路由流量。
历史数据集#
如需分析协议、国家和延迟的分布,可从Hugging Face Datasets或Kaggle下载带日期的观测记录。这些是固定快照,附有来源信息,并采用CC0许可。请查看它们的观测日期;获取当前记录请使用上文的API。
Kaggle分析笔记本读取该快照,并绘制其国家、协议和延迟分布图。无需调用实时API即可运行。