Free Proxy List Scraper
Pricing
from $2.40 / 1,000 proxy extracteds
Free Proxy List Scraper
Aggregate public free proxy lists into normalized IP, port, protocol, anonymity, country, source, freshness, and bounded TCP validation records.
Pricing
from $2.40 / 1,000 proxy extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Collect a current free proxy list from multiple public data sources and export normalized HTTP, HTTPS, SOCKS4, and SOCKS5 endpoint records.
The Actor combines source-reported IP, port, protocol, anonymity, country, organization, and freshness metadata. It can also perform bounded TCP reachability checks for scheduled network-inventory workflows.
Free public proxies are untrusted third-party servers. Treat every endpoint as potentially unsafe. A reachable port is not proof that a proxy relays traffic, protects privacy, or is suitable for production.
What does Free Proxy List Scraper do?
The Actor fetches public lists from:
- GeoNode's structured proxy-list API;
- Proxifly's public structured list;
- TheSpeedX protocol-specific public lists.
It then:
- rejects malformed and non-public IPv4 addresses;
- normalizes IP addresses, ports, and protocols;
- filters by protocol, country, and anonymity;
- deduplicates by protocol, IP, and port;
- stops at your
maxItemslimit; - optionally checks whether each TCP port accepts a connection;
- saves typed records to the default Apify dataset.
The Actor does not provide a web-browsing proxy, sell proxy traffic, or promise that listed endpoints work beyond the moment they are checked.
Who is it for?
Scraping and automation engineers
Refresh a candidate pool before a controlled test, while keeping the original source and timestamps for auditability.
Network operations teams
Build a scheduled inventory of public endpoints and compare exported datasets between runs.
Security researchers
Study publicly advertised network services in a bounded, reproducible workflow. Follow your authorization and disclosure obligations.
Data analysts
Export normalized endpoint records to JSON, CSV, XML, Excel, or another dataset-supported format without maintaining three source parsers.
Why use this Actor?
- Multiple sources: broaden coverage without mixing incompatible response formats downstream.
- Normalized records: every result has a consistent endpoint, IP, port, protocol, source, and timestamp shape.
- Useful provenance: trace a record to the public list that supplied it.
- Freshness fields: retain source-reported last-seen time and calculate its age when available.
- Bounded validation: cap timeout and concurrency for optional TCP checks.
- Fail-safe input: malformed country codes, limits, and unsupported sources fail clearly.
- No paid proxy required: collection uses direct public HTTP data surfaces.
- Integration-ready: use the default dataset with Apify schedules, webhooks, API clients, and MCP.
What data can you extract?
| Field | Type | Meaning |
|---|---|---|
endpointId | string | Stable protocol/IP/port identity for the current endpoint. |
endpoint | string | URI such as http://126.209.84.138:5050. |
ip | string | Public IPv4 address. |
port | integer | Port from 1 through 65535. |
protocol | string | http, https, socks4, or socks5. |
anonymity | string or null | Source-reported anonymity label. |
countryCode | string or null | Source-reported two-letter country code. |
country | string or null | Source-reported country name or code. |
city | string or null | Source-reported city. |
organization | string or null | Source-reported organization or ISP. |
sourceLatencyMs | number or null | Source-reported latency in milliseconds, not our TCP check or relay measurement. |
sourceUptimePercent | number or null | Source-reported uptime percentage (0–100), not independently verified. |
asn | string or null | Source-reported autonomous system number, normalized as AS12345. |
source | string | geonode, proxifly, or speedx. |
sourceUrl | string | Public URL fetched by the Actor. |
sourceRecordId | string or null | Upstream record identifier when available. |
lastSeenAt | date or null | Upstream last-check timestamp. |
freshnessSeconds | integer or null | Age of lastSeenAt when available. |
validationStatus | string | reachable, unreachable, or skipped. |
validationMethod | string or absent | tcp-connect when validation ran; omitted when checks are skipped. |
validationLatencyMs | integer or null | TCP-check elapsed time, including failure time. |
validatedAt | date or null | Time the Actor began its check. |
validationError | string or null | Bounded error message for failed checks. |
fetchedAt | date | Time the Actor assembled the record. |
Missing or invalid source metadata remains null; it is never merged from a duplicate endpoint supplied by another source. GeoNode currently supplies latency, uptime and ASN. Source-reported latency is accepted from 0 through 86,400,000 ms; uptime from 0 through 100 percent. These are upstream measurements, not evidence of safe or functioning relays.
How to get a free proxy list
- Open the Actor in Apify Console.
- Keep GeoNode and Proxifly selected for a balanced default list.
- Select the protocols you need.
- Optionally enter ISO country codes such as
US,DE, orGB. - Set the maximum number of unique endpoints.
- Leave TCP validation off for the fastest inventory export.
- Turn it on only when port reachability is useful to your workflow.
- Click Start.
- Open the Proxy endpoints dataset view.
- Export the records or connect your next automation step.
Default input:
{"sources": ["geonode", "proxifly"],"protocols": ["http", "https"],"maxItems": 100,"validateProxies": false}
Input parameters
sources
Choose one or more supported public lists.
geonodeoffers the richest source-reported freshness and location metadata.proxiflyprovides broad structured protocol coverage.speedxprovides protocol-specific plain-text endpoint lists.
Default: geonode and proxifly.
protocols
Choose any combination of http, https, socks4, and socks5.
Protocol values are source claims. TCP validation does not perform a protocol handshake.
countries
Enter optional ISO 3166-1 alpha-2 codes.
When a country filter is active, records without country metadata are excluded. This means source choice can affect how many matching records are available.
anonymityLevels
Enter source labels such as elite, anonymous, or transparent.
Labels are normalized to lowercase but remain upstream classifications. Sources can use different testing methods.
maxItems
Choose from 1 to 5,000 unique records.
The limit applies after validation of record shape, filters, and deduplication. GeoNode scans up to ten 500-row pages, continuing until enough matching unique endpoints are selected or its bounded scan ends. Each selected source retains at most maxItems matching unique candidates; final selection round-robins across sources in selected order. Rare filters, duplicate endpoints, partial failures or the scan bound can yield fewer records. Source responses are bounded to 32 MiB and each request, including its body, has a 20-second timeout with at most three transient attempts.
validateProxies
When true, the Actor attempts a TCP connection to each selected endpoint.
This check answers only: “Did this public IP and port accept a TCP connection within the timeout?”
It does not answer:
- whether the endpoint forwards HTTP requests;
- whether it supports authentication;
- whether it leaks your IP address;
- whether it modifies traffic;
- whether it remains available later;
- whether it is lawful or safe for your use case.
validationTimeoutSecs
Per-endpoint TCP timeout from 1 through 15 seconds. Default: 3 seconds.
maxValidationConcurrency
Maximum simultaneous TCP checks from 1 through 100. Default: 20.
Example inputs
Aggregate HTTP and SOCKS endpoints
{"sources": ["geonode", "proxifly"],"protocols": ["http", "socks4", "socks5"],"maxItems": 100,"validateProxies": false}
Filter GeoNode to US elite endpoints
{"sources": ["geonode"],"protocols": ["http", "https"],"countries": ["US"],"anonymityLevels": ["elite"],"maxItems": 25,"validateProxies": false}
Refresh and check a SOCKS inventory
{"sources": ["geonode", "proxifly", "speedx"],"protocols": ["socks4", "socks5"],"maxItems": 20,"validateProxies": true,"validationTimeoutSecs": 2,"maxValidationConcurrency": 10}
Output example
This illustrative record reflects the Actor's output shape. Schema documentation examples may use non-working documentation IPs; they are not reachable-endpoint recommendations. Endpoint availability changes continuously.
{"ip": "126.209.84.138","port": 5050,"protocol": "http","anonymity": "transparent","countryCode": "PH","country": "PH","city": "Cebu City","organization": "Infinivan Incorporated","sourceLatencyMs": 244.915,"sourceUptimePercent": 95.8333,"asn": "AS12345","source": "geonode","sourceUrl": "https://proxylist.geonode.com/api/proxy-list","sourceRecordId": "6a789b6600599ef1e71db16e","lastSeenAt": "2026-09-06T14:08:21.000Z","endpointId": "http://126.209.84.138:5050","endpoint": "http://126.209.84.138:5050","freshnessSeconds": 101,"validationStatus": "skipped","validationLatencyMs": null,"validatedAt": null,"validationError": null,"fetchedAt": "2026-09-06T14:10:01.753Z"}
How much does it cost to extract free proxy endpoints?
Pay-per-event pricing has two parts:
- a $0.005 start fee for each run;
- $0.003992 per saved proxy endpoint on the BRONZE tier.
Examples at BRONZE pricing:
| Saved endpoints | Estimated Actor charge |
|---|---|
| 1 | $0.008992 |
| 10 | $0.04492 |
| 25 | $0.1048 |
| 100 | $0.4042 |
Only normalized records saved to the dataset incur the per-endpoint event. Rejected source rows, duplicates, and failed fetches are not charged as proxy endpoints. The Actor limits output to the remaining run charge budget and uses SDK budget-aware saving. If the budget cannot cover startup or another endpoint, it schedules no further collection/checking work. A dataset write failure fails the run without charging that unsuccessful batch; previously saved data and charges, if any, are not rolled back.
Apify may also apply your plan's platform usage terms. See the live pricing panel for the tier applicable to your account.
Schedule recurring proxy inventory refreshes
A schedule turns the Actor into a repeatable inventory feed:
- save a Task with stable source and filter settings;
- add an hourly or daily Apify schedule;
- retain the default dataset for each run;
- send the dataset URL through a webhook;
- compare
endpointId,lastSeenAt, andvalidationStatusdownstream; - alert only after your own confirmation and policy checks.
The Actor itself does not maintain cross-run history or send change alerts. Datasets and schedules provide the building blocks for your workflow.
Export and integration patterns
Spreadsheet inventory
Export the dataset as CSV or Excel and sort by country, protocol, source, or freshness.
Database ingestion
Use endpointId as a run-level endpoint key and preserve fetchedAt for snapshot lineage.
Controlled validation queue
Select a small maxItems value with the desired sources and filters, enable validateProxies, and use conservative timeout and concurrency. This Actor checks only the endpoints collected in that run; it does not accept an arbitrary endpoint list from an earlier dataset.
Source quality analysis
Group records by source and compare missing metadata or reachable-port rates over several snapshots.
Automation pipeline
Trigger a webhook after the run and feed only explicitly permitted endpoints into your internal review process.
Run with the Apify API
Replace <APIFY_TOKEN> with your token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~free-proxy-endpoint-list/runs?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"sources":["geonode","proxifly"],"protocols":["http"],"maxItems":100}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/free-proxy-endpoint-list').call({sources: ['geonode', 'proxifly'],protocols: ['http'],maxItems: 100,validateProxies: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("automation-lab/free-proxy-endpoint-list").call(run_input={"sources": ["geonode", "proxifly"],"protocols": ["socks5"],"maxItems": 100,"validateProxies": False,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with MCP and AI assistants
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/free-proxy-endpoint-list"
Claude Desktop, Cursor, and VS Code setup
Use this HTTP MCP server configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/free-proxy-endpoint-list"}}}
Example prompts:
- “Collect 50 current HTTP proxy endpoints and return country and source fields.”
- “Create a GeoNode-only US elite proxy inventory without active validation.”
- “Refresh 20 SOCKS5 endpoints and run bounded TCP reachability checks.”
Review generated inputs before starting a run, especially validation limits.
Reliability, freshness, and source behavior
Public free proxy lists change quickly.
- A source can remove an endpoint between runs.
- One source can temporarily fail while another succeeds.
- Location and anonymity are source-reported, not independently verified.
lastSeenAtcan be null when a source publishes no timestamp.freshnessSecondsis calculated only whenlastSeenAtis valid.- Country filters exclude records with unknown countries.
- Deduplication keeps the first normalized occurrence in selected-source order.
- The Actor retries network/timeouts, HTTP 429 and 5xx with bounded backoff; permanent 4xx are not retried. Redirects are rejected.
- Useful earlier GeoNode pages and successful TheSpeedX protocol groups survive later failures. Logs explicitly warn about partial coverage and the ten-page bound.
- If every selected source fails or yields no valid public endpoint, the run fails instead of returning a misleading success. Valid public candidates excluded by your filters can legitimately produce an empty dataset.
- Per-source logs record pages, bytes consumed (including failed attempts), rows scanned, valid candidates, kept candidates, retries, exhausted operations and scan-limit status.
Data handling and support
The Actor uses no AI models or paid proxy/data supplier. Public source services receive ordinary list-fetch requests; optional TCP checks contact only the selected public IP/port and transmit no relay payload. Source names identify provenance only; this Actor is not affiliated with or endorsed by those sources.
Endpoint IPs and source metadata are public network-inventory data and can still be identifying. Use exported data responsibly. Results stay in your run's Apify dataset under your account's storage/retention settings; the Actor keeps no cross-run inventory, cookies or private endpoint cache. Delete datasets and runs in Apify Console/API when no longer needed. Sanitized failure diagnostics have the separate 30-day retention described below. Report Actor problems through the Apify Store Issues tab; do not include credentials or confidential records.
Legality
Use the Actor only for public-data collection and network checks you are authorized to perform. Public listing does not grant permission to route traffic through an endpoint. Respect source terms, destination terms, computer-misuse laws, privacy requirements, and network abuse policies.
Security and responsible use
Free proxies can observe, modify, delay, or drop traffic.
Never send through an unknown proxy:
- passwords or login cookies;
- personal or health information;
- private API keys;
- payment information;
- confidential business records;
- traffic for systems you are not authorized to test.
Use HTTPS end-to-end, isolate experiments, apply destination allowlists, and independently review every endpoint before use. Follow source terms, destination terms, network abuse policies, export controls, and applicable laws.
The Actor rejects loopback, private, link-local, documentation, benchmarking, deprecated relay, multicast, future-reserved and invalid IPv4 entries before optional TCP checks. Its conservative special-purpose policy permits the globally reachable PCP/TURN anycast exceptions 192.0.0.9 and 192.0.0.10. Address eligibility is not permission to access an endpoint and does not establish its safety.
Failure diagnostics
Failed operations send sanitized diagnostic input, exceptions and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL query strings are removed; reports are retained for 30 days. An exhausted source operation may be reported even when another source lets the run succeed. Diagnostics include bounded per-source work counters, not raw upstream response bodies.
Limitations
- IPv4 endpoints only; IPv6 rows are currently excluded.
- No guarantee of completeness across all public lists.
- No browser-based web proxy service.
- No credentials or paid proxy pool.
- No HTTP, HTTPS CONNECT, SOCKS4, or SOCKS5 relay handshake validation.
- No anonymity reclassification.
- No malware or reputation screening.
- No historical dataset stored across runs.
- No built-in diff or alert notification.
- Output quality depends on changing third-party public data.
- TheSpeedX lacks country and anonymity metadata, so related filters exclude those rows.
Troubleshooting
Why did I get fewer records than maxItems?
Your filters apply after malformed records are removed. A country or anonymity filter can exclude sources that do not publish those fields. Broaden the filters or select GeoNode and Proxifly together.
Why is validationStatus set to skipped?
Set validateProxies to true. Leaving it off is faster and records source data without active network checks.
Why is a reachable endpoint unusable as a proxy?
TCP reachability only confirms that a port accepted a connection. It does not perform a proxy protocol handshake or relay a destination request.
Why did the run fail instead of returning an empty dataset?
When every selected upstream source fails or no source supplies valid public endpoints, a failed run avoids presenting infrastructure failure as a naturally empty result.
How do I reduce validation time?
Lower maxItems, shorten validationTimeoutSecs, or raise concurrency carefully within the schema limit. Conservative settings reduce outbound connection bursts.
FAQ
Does this Actor provide free proxy bandwidth?
No. It aggregates public endpoint metadata. Endpoint operation belongs to unrelated third parties.
Are all listed proxies live?
No. Public lists are volatile. Use source timestamps and optional TCP checks as bounded signals, then perform your own authorized protocol-level testing.
Can I export CSV or Excel?
Yes. Open the default dataset and choose any Apify-supported export format.
Can I filter by country?
Yes. Use two-letter codes. Only records with matching source metadata remain.
Does validation prove anonymity?
No. Anonymity is copied from the source and TCP validation does not inspect forwarding behavior.
Can I schedule it?
Yes. Save the input as a Task and attach an Apify schedule.
Related Automation Lab Actors
- IP Geolocation Bulk Lookup can enrich an approved IP list when deeper location fields are needed.
- HTTP Status Code Checker checks authorized destination URLs; it does not validate proxy relays.
Use related Actors only when their independent input and billing contracts match your workflow.


