Community-based IP whitelist for LetsEncrypt validation servers. Protect your firewall without opening port 80 to the world.
60 seconds response cache for optimal performance
Only verified LetsEncrypt server IPs
Optimized for URL Table Alias Import
Publicly available without registration
Let's Encrypt is fantastic – but there's a problem for firewall administrators.
Let's Encrypt is fantastic – free SSL certificates for everyone! But there's a problem: Let's Encrypt does not publish an official list of its validation server IPs. This is a real obstacle for administrators who protect their servers with firewalls and IP blacklists.
The data comes from access logs of various servers that handle LetsEncrypt HTTP-01 challenges. Every IP that performs an ACME challenge request is automatically captured and added to the community list.
?days=X filter.
IPs from servers with API key. Highest trust level – recommended for production firewalls.
IPs from anonymous reports. Can be reviewed by admins in the dashboard.
?filter=verified (default). For maximum coverage, ?filter=all can be used.
Current numbers of our community-based IP collection
All endpoints, parameters and response formats
The simplest usage – no API key, no registration needed:
curl https://le.crowdlist.dev/api/get/plain
Returns a plain text list of all verified IPs – one IP per line. Perfect for OPNsense URL Table Alias.
GET /api/get/plain
Returns IPs as plain text (one IP per line). Ideal for firewall imports.
GET /api/get/json
Returns IPs as JSON array with details (IP, PTR, verified, last_access).
POST /api/submit
Submit IPs (JSON body). Without API key as unverified, with API key as verified.
GET /api/stats
| Parameter | Values | Default | Description |
|---|---|---|---|
filter |
verified, unverified, all |
verified |
Filters by verification status |
days |
1-365 | 90 | Only IPs from last X days (based on last_access) |
| Header | Description | Example |
|---|---|---|
X-Total-IPs |
Number of returned IPs | 8 |
X-Filter |
Filter used | verified |
X-Cache |
Cache status | HIT or MISS |
X-Cache-Age |
Cache age in seconds | 23s |
X-RateLimit-Remaining |
Remaining requests | 7 |
https://le.crowdlist.dev/api/get/plain
23.178.112.100 66.133.109.36 34.211.5.78 ...
https://le.crowdlist.dev/api/get/json
{
"success": true,
"filter": "verified",
"count": 8,
"ips": [
{
"ip": "23.178.112.100",
"ptr": "e100.i.lencr.org",
"verified": true,
"last_access": "2025-01-15 14:23:01"
}
]
}
https://le.crowdlist.dev/api/get/plain?days=30
last_access – only IPs that were active in the last X days.
https://le.crowdlist.dev/api/stats
{
"success": true,
"stats": {
"total_ips": 245,
"verified_ips": 212,
"active_30_days": 198
}
}
Retry-After header shows wait timeX-Cache Header: HIT or MISSAutomatic whitelisting of LetsEncrypt validation servers for ACME challenges
Programmatic access for custom monitoring or automation systems
Automate IP collection on your server
The script can be downloaded directly from this URL:
https://le.crowdlist.dev/scripts/crowdlist-collector.sh
The script should be executed automatically daily:
For quick installation, you can use this one-liner: