Genel kurallar
- Temel adres:
https://proxysorgula.tr. API yolları sonda eğik çizgi olmadan yazılır (/api/free-proxies), sayfa yolları eğik çizgiyle biter. - Yanıtlar UTF-8 JSON (veya
format=txtile düz metin) olarak döner. CORS başlığı gönderilmez; tarayıcıdan başka bir kaynaktan çağırmak yerine sunucu tarafında çağırın. - Hatalar
{ "error": { "code": "...", "message": "..." } }biçimindedir;messageTürkçedir,codemakine tarafından okunur. - İstekler IP adresi başına hız sınırına tabidir.
429aldığınızdaRetry-Afterbaşlığındaki saniye kadar bekleyin. - Adil kullanım: listeyi dakikada bir değil, en fazla birkaç dakikada bir çekin. Kaynak listeler yaklaşık 30 dakikada bir yenilenir, daha sık sorgulamak aynı veriyi getirir.
GET /api/free-proxies
Ücretsiz proxy listesi sayfasının kullandığı uçtur. Kamuya açık kaynaklardan derlenen kayıtları, bizim doğrulama sonuçlarımızla birlikte döndürür. Doğrulanmamış alanlar null gelir; ölçülmeyen değer uydurulmaz.
| Parametre | Değerler | Açıklama |
|---|---|---|
protocol | http, https, socks4, socks5 | Protokole göre süzer. |
country | İki harfli ülke kodu, örn. DE | Büyük/küçük harf fark etmez. |
ipVersion | 4 veya 6 | IP sürümü. |
status | working, dead, unverified | Doğrulama durumu. format=txt için varsayılan working. |
q | En çok 64 karakter | IP, port ve ülke kodunda serbest arama. |
maxLatency | 1–60000 (ms) | Ölçülen gecikmesi bu değerden küçük kayıtlar. |
checkedWithinMin | 1–10080 (dakika) | Son N dakikada bizim doğruladığımız kayıtlar. |
sort | lastChecked, latency, country, port, ip, protocol, status | Sıralama anahtarı. Varsayılan lastChecked. |
order | asc veya desc | lastChecked için varsayılan desc, diğerleri asc. |
page | Tam sayı ≥ 1 | Sayfa numarası. Varsayılan 1. |
limit | JSON için 1–200, txt için 1–5000 | Sayfa başına kayıt. Varsayılan 50. |
format | json (varsayılan) veya txt | txt her satıra bir proxy yazar. |
download | 1 | Yalnızca txt ile: dosya olarak indirme başlığı ekler. |
Yanıt biçimi (JSON)
{
"data": [
{
"id": "socks5://203.0.113.10:1080",
"ip": "203.0.113.10",
"port": 1080,
"protocol": "socks5",
"ipVersion": 4,
"country": "DE",
"countrySource": "geoip",
"status": "working",
"latencyMs": 412,
"lastChecked": "2026-10-30T09:12:44.000Z",
"sources": ["kaynak-a"],
"anonymity": null
}
],
"pagination": { "page": 1, "limit": 50, "total": 1, "totalPages": 1 },
"meta": {
"updatedAt": "2026-10-30T09:30:00.000Z",
"stale": false,
"sources": [],
"counts": { "total": 1, "working": 1, "dead": 0, "unverified": 0, "byProtocol": { "http": 0, "https": 0, "socks4": 0, "socks5": 1 } },
"validation": { "lastRunAt": "2026-10-30T09:30:00.000Z", "tested": 1, "working": 1 },
"disclaimer": "…"
}
}latencyMsvelastCheckedyalnızca bizim doğrulamamızdan gelir; kayıt hiç doğrulanmadıysanullolur.anonymitykaynağın bildirdiği değerdir, biz doğrulamadık. Anonimliği ölçmek için proxy kontrol aracını kullanın.meta.updatedAtnullise henüz anlık görüntü oluşmamıştır;databoş gelir.meta.staleverinin beklenenden eski olduğunu gösterir.- Başarılı yanıtlar
Cache-Control: public, s-maxage=30, stale-while-revalidate=60ile gelir.
Düz metin dışa aktarma
format=txt her satıra bir kayıt yazar. protocol belirtilirse satırlar IP:PORT, belirtilmezse protokol://IP:PORT biçimindedir. status verilmezse yalnızca working kayıtlar listelenir. Dışa aktarma ayrıca daha düşük bir hız sınırına tabidir.
curl -s "https://proxysorgula.tr/api/free-proxies?protocol=socks5&format=txt&limit=100" -o socks5.txt
# JSON, Almanya'daki çalışan HTTP proxy'ler, gecikmeye göre
curl -s "https://proxysorgula.tr/api/free-proxies?protocol=http&country=DE&status=working&sort=latency&limit=20"const url = new URL('https://proxysorgula.tr/api/free-proxies');
url.searchParams.set('protocol', 'socks5');
url.searchParams.set('status', 'working');
url.searchParams.set('maxLatency', '1500');
url.searchParams.set('limit', '50');
const res = await fetch(url, { headers: { accept: 'application/json' } });
if (res.status === 429) {
const wait = Number(res.headers.get('retry-after') ?? '30');
throw new Error(`Hız sınırı: ${wait} sn sonra tekrar deneyin`);
}
if (!res.ok) throw new Error((await res.json()).error.message);
const { data, meta } = await res.json();
console.log(meta.updatedAt, data.map((p) => `${p.ip}:${p.port}`));import requests
r = requests.get(
"https://proxysorgula.tr/api/free-proxies",
params={"protocol": "http", "status": "working", "sort": "latency", "limit": 25},
timeout=15,
)
r.raise_for_status()
for p in r.json()["data"]:
print(f"{p['ip']}:{p['port']}", p["latencyMs"], p["country"])POST /api/proxy-check
Proxy kontrol sayfasının kullandığı uçtur. Verdiğiniz proxy'ye bizim sunucumuzdan bağlanır ve ölçülen sonucu döndürür. Uç, açık bir röle veya SSRF aracı olmasın diye sıkı korunur: yalnızca genel (public) adreslere bağlanır, yalnızca bizim belirlediğimiz test adreslerine istek gönderir ve her istek bir iş kanıtı (proof of work) ister.
| Alan | Tür | Açıklama |
|---|---|---|
host | metin | Proxy'nin IP adresi veya genel ana bilgisayar adı (en çok 253 karakter). |
port | sayı | 1–65535. |
protocol | metin | http, https, socks4 veya socks5. |
username, password | metin, isteğe bağlı | Proxy kimlik doğrulaması gerekiyorsa. Saklanmaz ve günlüğe yazılmaz. |
challenge | { token, nonce } | /api/challenge ile alınan iş kanıtı çözümü. |
İş kanıtı (proof of work) akışı
- 1
Görev al
GET /api/challengeçağrısı{ token, bits, expiresAt }döndürür. Görev IP adresinize bağlıdır, yaklaşık iki dakika geçerlidir ve tek kullanımlıktır. - 2
Nonce bul
SHA-256(token + ":" + nonce)özetinin baştaki sıfır bit sayısı en azbitsolana kadarnoncedeğerini artırın.nonce1–20 karakterlik küçük harf/rakam dizisi olmalıdır. - 3
İstek gönder
POST /api/proxy-checkgövdesinechallenge: { token, nonce }ekleyin. Hızlı art arda görev isteyen istemcilere daha zor görev verilir.
import { createHash } from 'node:crypto';
const BASE = 'https://proxysorgula.tr';
function leadingZeroBits(digest) {
let bits = 0;
for (const byte of digest) {
if (byte === 0) { bits += 8; continue; }
return bits + Math.clz32(byte) - 24;
}
return bits;
}
function solve({ token, bits }) {
for (let n = 0; ; n++) {
const nonce = n.toString(36);
const digest = createHash('sha256').update(`${token}:${nonce}`).digest();
if (leadingZeroBits(digest) >= bits) return nonce;
}
}
const task = await (await fetch(`${BASE}/api/challenge`)).json();
const res = await fetch(`${BASE}/api/proxy-check`, {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
host: '203.0.113.10',
port: 8080,
protocol: 'http',
challenge: { token: task.token, nonce: solve(task) },
}),
});
console.log(res.status, await res.json());Yanıt, ölçülen alanları içeren bir sonuç nesnesidir: status (working, connect_failed, auth_required, timeout, unsupported, unverified), timings, connectionMs, varsa capabilities, exit ve anonymity. Bir alan yalnızca gerçekten ölçüldüyse bulunur. Accept: application/x-ndjson gönderirseniz aşamalar (resolve, connect, tls, handshake, auth, request) satır satır akıtılır ve son satır sonuçtur.
| HTTP | Hata kodu (error.code) | Anlamı |
|---|---|---|
| 400 | invalid_input | Gövde doğrulamadan geçmedi. |
| 401 | challenge_required | İş kanıtı gönderilmedi. |
| 403 | challenge_invalid | İş kanıtı geçersiz: süresi geçmiş, başka IP'ye ait, daha önce kullanılmış veya yeterli değil. |
| 403 | blocked_target | Hedef genel bir adres değil (özel, yerel veya ayrılmış aralık). |
| 429 | rate_limited | Hız sınırı aşıldı; Retry-After kadar bekleyin. |
| 503 | busy, worker_unavailable | Test sunucusu meşgul veya ulaşılamıyor. |
| 500 | internal_error | Beklenmeyen hata; ayrıntı dönmez. |
GET /api/echo
İsteğin sunucuya ulaştığı haliyle başlıklarını döndürür: { ip, receivedAt, headers }. Bir proxy üzerinden çağırdığınızda proxy'nin Via, X-Forwarded-For gibi başlıkları ekleyip eklemediğini görürsünüz; kontrol aracımız anonimlik seviyesini bu uçla ölçer. cookie, authorization ve iç başlıklar yanıttan çıkarılır. Yanıt hiçbir zaman önbelleğe alınmaz.
curl -s -x http://KULLANICI:[email protected]:8080 "http://proxysorgula.tr/api/echo"Kullanım koşulları ve sorumluluk
- Yalnızca kendi sistemlerinizi veya izinli olduğunuz proxy'leri test edin. Kontrol aracını port tarama, saldırı veya yük testi için kullanmak yasaktır; kötüye kullanım tespit edilirse erişim kısıtlanır.
- Ücretsiz liste herkese açık kaynaklardan derlenir; çalışırlık ve güvenlik garantisi yoktur. Ayrıntı için ücretsiz proxy kullanmanın riskleri yazısına bakın.
- API için SDK, anahtar veya hesap sistemi yoktur. Ticari proxy ürünlerimizin API'si bu sitede sunulmaz; ürünler saglamproxy.com üzerinden satılır.