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
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 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. |
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 source metadata remains null; it is never invented from another endpoint.
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.
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 record reflects the Actor's current output shape. 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","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.
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
Run collection without validation first, choose a bounded subset, then run a validation Task with conservative timeout and concurrency.
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 transient source failures with bounded backoff.
- If every selected source fails or yields no valid public endpoint, the run fails instead of returning a misleading success.
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, reserved, multicast, and invalid IPv4 entries before optional TCP checks.
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.