API de proxies gratis
GET /api/free-proxy devuelve las observaciones públicas actuales de proxies gratis de Litport. No requiere autenticación.
Solicitud#
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'
| Parámetro | Tipo | Predeterminado | Comportamiento actual |
|---|---|---|---|
country |
string | all | Código ISO-2 sin distinguir mayúsculas y minúsculas. El valor se convierte a mayúsculas; no se aplican alias. |
limit |
integer | 50 | Rango aceptado 10–1000. Los valores no válidos o fuera de rango se ignoran. |
page |
integer | 1 | Rango aceptado 1–1000. Los valores no válidos o fuera de rango se ignoran. |
sortBy |
string | pingAt_desc | Campo: pingAt, response |
anonymity |
string | all | Filtro exacto: transparent, anonymous, elite o unknown. Los valores desconocidos suelen devolver un array vacío. |
anonymity |
string | all | Alias obsoleto: high = anonymous o elite, low = transparent. Filtro exacto. Los valores desconocidos suelen devolver un array vacío. |
protocol |
string | all | Filtro exacto, como http, https o socks5. Los valores desconocidos suelen devolver un array vacío. |
list |
string | all | Valor predefinido con nombre para la lista generada: https (compatible con HTTPS), fast (latencia redondeada inferior a 1000 ms), stable (tiempo de actividad redondeado de siete días de al menos 90% con al menos 50 comprobaciones) o anonymous (anonymous o elite). Los valores desconocidos se ignoran. |
uptimeRating |
integer | ninguno | Porcentaje mínimo de tiempo de actividad de 24 horas, 1–100. Los valores no válidos se ignoran. |
response |
integer | ninguno | Tiempo máximo de respuesta HTTP en milisegundos |
checked |
integer | ninguno | Antigüedad máxima de pingAt en minutos, 1–1440. El endpoint snapshot usa 30 por defecto; este filtro de frescura excluye las marcas de tiempo posteriores al momento de la solicitud. |
format |
string | json | json, csv, txt o txt-proto. Con valores desconocidos se usa JSON. |
download |
flag | desactivado | Si está presente en un formato compatible, devuelve un archivo adjunto. |
country usa un código ISO-2 sin distinguir mayúsculas de minúsculas y se convierte a mayúsculas para la búsqueda. No tiene tabla de alias: usa country=gb; country=uk puede devolver un array vacío. Los nombres de usuario de los proxies PPG tienen un comportamiento de compatibilidad distinto.
Comportamiento de la respuesta#
La respuesta JSON predeterminada es un array simple, sin envoltorio data, total ni valor hasMore. La paginación es ciega: el desplazamiento de la página es (page - 1) * limit, y un array vacío significa que ninguna fila coincidió en esa página.
El conjunto de datos subyacente puede tener hasta 120 segundos de antigüedad, y las respuestas envían Cache-Control: public, max-age=60 además de eso, por lo que una respuesta puede ir hasta unos 3 minutos por detrás de la última comprobación; consultar a intervalos más cortos que la ventana de caché devuelve las mismas filas. Los parámetros numéricos no válidos y los valores no válidos de sortBy se ignoran en silencio en esta versión y se mantienen sus valores predeterminados. Los valores desconocidos en filtros exactos suelen producir un array vacío en lugar de una respuesta 400.
checkedWithinMin conserva solo los proxies comprobados dentro de la ventana solicitada de 1–1440 minutos. Excluye las marcas de tiempo posteriores a la hora de la solicitud. El endpoint paginado no tiene un filtro de frescura predeterminado, por compatibilidad.
[
{
"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"
}
]
Las direcciones de ejemplo de esta documentación están reservadas para documentación y no son proxies activos.
Campos JSON#
| Campo | Tipo | Significado |
|---|---|---|
protocol |
string | Protocolo del proxy. |
host |
string | Nombre de host o dirección IP del proxy. |
port |
integer | Puerto del proxy. |
externalIp |
string | IP de salida observada. |
geoCountry |
string | País de salida en ISO-2. |
geo |
string | Bandera del país para mostrar. |
geoRegion |
string | Región de salida observada. |
geoCity |
string | Ciudad de salida observada. |
geoTimezone |
string | Zona horaria de salida observada. |
asn |
integer or string | Número de sistema autónomo observado; las observaciones anteriores pueden usar una cadena con prefijo AS. |
asnOrgName |
string | Organización de red observada. |
https |
boolean | true cuando una solicitud HTTPS atraviesa el proxy en un túnel con un certificado válido; null cuando aún no se ha medido. |
anonymity |
string | Clasificación de anonimato medida: transparent, anonymous, elite o unknown. |
anonymity |
integer | Puntuación de anonimato normalizada. |
anonymity |
string | Alias obsoleto: high = anonymous o elite, low = transparent. |
anonymity |
integer | Alias obsoleto, igual a anonymity |
response |
number | Tiempo de respuesta HTTP medido en milisegundos |
response |
integer | Puntuación normalizada del tiempo de respuesta. |
uptimeRating |
integer | Porcentaje de tiempo de actividad de 24 horas, redondeado. |
uptime7d |
number | Porcentaje de tiempo de actividad de siete días, redondeado a un decimal. |
checks7d |
integer | Número de comprobaciones que contribuyen al valor de tiempo de actividad de siete días. |
uptime24h |
number | Porcentaje de tiempo de actividad de 24 horas, redondeado a un decimal. |
checks24h |
integer | Número de comprobaciones que contribuyen al valor de tiempo de actividad de 24 horas. |
sourcesCount |
integer | Número de listas de origen observadas para este proxy. |
response |
number | Mediana móvil de la latencia en las comprobaciones de actividad recientes, posiblemente fraccionaria |
lastAliveAt |
date-time | Cuándo superó este proxy una comprobación de actividad por última vez. |
createdAt |
date-time | Cuándo observó Litport este proxy por primera vez. |
pingAt |
date-time | Cuándo comprobó Litport este proxy por última vez. |
createdAt registra cuándo observó Litport el proxy por primera vez. pingAt registra la última comprobación y es la señal de frescura relevante. https indica si una solicitud HTTPS a través del proxy se completó con un certificado válido y de confianza; es null hasta que se mide. anonymity indica cuánto expone el proxy sobre sí mismo y sobre quien hace la solicitud (transparent, anonymous, elite o unknown); anonymityLevel es un alias obsoleto de dos valores que se conserva por compatibilidad.
Instantánea consistente#
GET /api/free-proxy/snapshot devuelve una generación completa y filtrada de forma consistente. Usa checkedWithinMin=30 de forma predeterminada, acepta los mismos filtros que el endpoint de lista salvo page, limit, sortBy, format y download, y devuelve hasta 20,000 filas ordenadas por frescura. Un valor no válido de checkedWithinMin devuelve 400.
{
"generatedAt": "2026-09-09T22:40:12.000Z",
"count": 2121,
"totalCount": 2121,
"truncated": false,
"maxAgeMin": 30,
"proxies": []
}
Ambos endpoints incluyen ETag y Last-Modified para solicitudes condicionales. Envía el ETag recibido en If-None-Match; una solicitud válida y coincidente recibe 304 Not Modified solo después de que se haya calculado su respuesta filtrada actual.
Formatos CSV y de texto#
# 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'
Usa download=1 con un formato admitido para solicitar un archivo adjunto. El CSV se devuelve como text/csv; las variantes de texto usan text/plain; el JSON usa application/json.
Ejemplo en 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()
Ejemplo en 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)
Recursos para desarrolladores#
Explora la lista de proxies gratis para revisar los datos actuales, filtrarlos en el navegador y copiar una URL de solicitud para tus propias pruebas.
Usa el código fuente de la lista de proxies gratis para entender el conjunto de datos publicado, o revisa el código fuente del SDK de proxies gratis al integrar la API en una aplicación.
SDK#
Elige un cliente para tu entorno de ejecución. Cada cliente obtiene y filtra registros de proxies; tu aplicación decide cómo usarlos.
| Entorno de ejecución | Instalación | Paquete y referencia |
|---|---|---|
| JavaScript / TypeScript | npm install @litportnet |
paquete de npm |
| JavaScript / TypeScript mediante JSR | npx jsr add @litportnet |
paquete de JSR y referencia de la API |
| C# / .NET | dotnet add package Litportnet |
paquete de .NET |
| PHP | composer require litportnet |
paquete de PHP |
| Ruby | gem install litportnet-free-proxy-sdk |
paquete de Ruby |
| Python | pip install litportnet-free-proxy-sdk |
paquete de PyPI |
| Go | go get github |
paquete de Go y referencia |
| Rust | cargo add litportnet-free-proxy-sdk |
crate de Rust · referencia de la API |
| Perl | cpanm Web |
distribución de CPAN y referencia |
| Elixir | {: en mix.exs |
paquete de Hex · referencia de HexDocs |
| Dart | dart pub add litportnet |
paquete de pub.dev |
| R | install |
paquete de R-universe |
Herramientas de la API#
La colección de Postman contiene solicitudes listas para ejecutar para filtros, instantáneas y exportaciones en CSV y texto. No se necesita clave de API.
Usa la imagen de Docker CLI para exportar registros sin instalar un entorno de ejecución de lenguaje local:
docker run --rm litportnet/free-proxy-sdk:0.1.0 --protocol socks5 --limit 20 --format json
El contenedor obtiene registros de proxies; no opera un servidor proxy.
Conecta un agente de IA con el servidor MCP, publicado como @litportnet/free-proxy-mcp e incluido en el MCP Registry oficial como io.github.litportnet/free-proxy-mcp. Agrégalo a cualquier cliente compatible con MCP:
{
"mcpServers": {
"free-proxy": {
"command": "npx",
"args": ["-y", "@litportnet/free-proxy-mcp"]
}
}
}
Expone tres herramientas de solo lectura: listar proxies por filtro, elegir el mejor clasificado y resumir la instantánea actual. Como todos los clientes anteriores, devuelve registros de proxies y no enruta tráfico.
Conjuntos de datos históricos#
Para analizar las distribuciones por protocolo, país y latencia, descarga las observaciones fechadas desde Hugging Face Datasets o Kaggle. Son instantáneas fijas con información sobre su origen y una licencia CC0. Revisa su fecha de observación; para registros actuales usa la API anterior.
El notebook de análisis de Kaggle lee la instantánea y grafica sus distribuciones por país, protocolo y latencia. Puedes ejecutarlo sin llamar a la API en vivo.