Menú de la documentación

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, responseTimeMs o createdAt. Dirección: asc o desc. Los valores no válidos se ignoran.
anonymity string all Filtro exacto: transparent, anonymous, elite o unknown. Los valores desconocidos suelen devolver un array vacío.
anonymityLevel 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.
responseTimeMs integer ninguno Tiempo máximo de respuesta HTTP en milisegundos, 1–10000. Los valores no válidos se ignoran.
checkedWithinMin 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.
geoCountryFlagEmoji 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.
anonymityRating integer Puntuación de anonimato normalizada.
anonymityLevel string Alias obsoleto: high = anonymous o elite, low = transparent.
anonymityLevelRating integer Alias obsoleto, igual a anonymityRating.
responseTimeMs number Tiempo de respuesta HTTP medido en milisegundos.
responseTimeRating 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.
responseTimeMedianMs number Mediana móvil de la latencia en las comprobaciones de actividad recientes, posiblemente fraccionaria, o null si no está disponible.
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/free-proxy-sdk paquete de npm
JavaScript / TypeScript mediante JSR npx jsr add @litportnet/free-proxy-sdk paquete de JSR y referencia de la API
C# / .NET dotnet add package Litportnet.FreeProxy paquete de .NET
PHP composer require litportnet/free-proxy-sdk 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.com/litportnet/free-proxy-sdk/packages/go paquete de Go y referencia
Rust cargo add litportnet-free-proxy-sdk crate de Rust · referencia de la API
Perl cpanm WebService::Litportnet::FreeProxy distribución de CPAN y referencia
Elixir {:litportnet_free_proxy, "~> 0.1"} en mix.exs paquete de Hex · referencia de HexDocs
Dart dart pub add litportnet_free_proxy paquete de pub.dev
R install.packages("litportFreeProxy", repos = c("https://litportnet.r-universe.dev", "https://cloud.r-project.org")) 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.