API Dökümantasyonu

DomainFinder REST API ile sınırsız pattern bazlı domain araması yapabilirsiniz. Token tabanlı kimlik doğrulama kullanılır.

Base URL
https://yourdomain.com/api/v1
Kimlik Doğrulama

Tüm API isteklerinde X-Api-Token başlığı zorunludur.

🔑 Token'larınızı admin panelinden oluşturabilirsiniz. Her token bir son kullanma tarihine sahip olabilir.

Örnek İstek Başlığı

GET /api/v1/search?length=8&endsWith=can&tlds=com,net HTTP/1.1
Host: yourdomain.com
X-Api-Token: df_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789012345678
Endpoint'ler
GET /api/v1/search

Belirtilen pattern'e uyan boş (kayıtsız) domainleri döndürür. Sonuçlar sayfalandırılmıştır; büyük kombinasyon uzaylarını offset ile gezeebilirsiniz.

Parametre Tip Zorunlu Açıklama
length int Evet Domain uzunluğu (1–63)
startsWith string Hayır* Domain bu karakterlerle başlamalı (örn: tech)
endsWith string Hayır* Domain bu karakterlerle bitmeli (örn: can)
contains string Hayır* Domain bu karakterleri içermeli (örn: shop)
tlds string Hayır Virgülle ayrılmış uzantılar. Varsayılan: com,net
letters bool Hayır a–z karakterleri dahil et. Varsayılan: true
numbers bool Hayır 0–9 rakamları dahil et. Varsayılan: false
hyphen bool Hayır Tire (-) karakteri dahil et. Varsayılan: false
customChars string Hayır Özel karakter seti (örn: aeiou). Diğer charset parametreleriyle birleşir.
page int Hayır Sayfa numarası. Varsayılan: 1
offset string Hayır Bir önceki sayfanın nextOffset değeri. Büyük kombinasyon uzaylarında sayfalama için kullanılır.
* startsWith, endsWith veya contains parametrelerinden en az biri zorunludur.
Örnek İstekler

1 — Sonu "can" ile biten 8 karakterli .com domain'ler

GET /api/v1/search?length=8&endsWith=can&tlds=com&letters=true
X-Api-Token: df_aBcDeFgH...

2 — "tech" ile başlayan 6 karakterli .com ve .net domain'ler

GET /api/v1/search?length=6&startsWith=tech&tlds=com,net
X-Api-Token: df_aBcDeFgH...

3 — "tech" içeren 5 karakterli, harf ve rakam karma

GET /api/v1/search?length=5&contains=tech&letters=true&numbers=true&tlds=com
X-Api-Token: df_aBcDeFgH...

4 — Sadece sesli harflerden oluşan 4 karakterli domain'ler (customChars)

GET /api/v1/search?length=4&contains=a&customChars=aeiou&letters=false&tlds=com,net
X-Api-Token: df_aBcDeFgH...

5 — Sayfa 2 (önceki yanıttaki nextOffset ile)

GET /api/v1/search?length=8&endsWith=can&tlds=com&offset=abcdecan
X-Api-Token: df_aBcDeFgH...
Yanıt Formatı

Başarılı Yanıt (HTTP 200)

{
  "success": true,
  "totalCombinations": 11881376,
  "checked": 5000,
  "availableFound": 84,
  "hasMore": true,
  "nextOffset": "aaaaaecan",
  "elapsedMs": 312,
  "isMasked": false,
  "domains": [
    { "name": "aaaaacan.com", "isMasked": false },
    { "name": "aaabzcan.com", "isMasked": false },
    ...
  ]
}

Alan Açıklamaları

AlanTipAçıklama
successboolİşlem başarısı
totalCombinationslongPattern'e uyan toplam kombinasyon sayısı
checkedlongBu istekte kontrol edilen kombinasyon sayısı
availableFoundintBu sayfada bulunan boş domain sayısı
hasMoreboolDaha fazla sonuç olup olmadığı
nextOffsetstringBir sonraki sayfa için offset değeri
elapsedMslongİşlem süresi (ms)
domainsarrayBulunan boş domain listesi (her biri name ve isMasked içerir)
Hata Kodları
HTTP KoduDurumAçıklama
200 OK İstek başarılı. success: false ise hata mesajını error alanında okuyun.
401 Unauthorized Token eksik, geçersiz, devre dışı veya süresi dolmuş.
400 Bad Request Geçersiz parametre (uzunluk aralığı dışında, çakışan prefix/suffix vb.)

Hata Yanıtı Örneği

{
  "success": false,
  "error": "En az bir arama terimi zorunludur: başlangıç, bitiş veya içerik."
}
Limitler & Notlar
✅ API token sahipleri sınırsız sorgu hakkına sahiptir. Rate limit uygulanmaz.
ℹ️ Çok büyük kombinasyon uzaylarında (örn. 50M+) sonuçlar otomatik olarak sayfalandırılır. hasMore: true ise nextOffset değerini bir sonraki isteğe ekleyerek devam edin.
⚠️ Zone dosyaları her gün güncellenir. Sonuçlar gerçek zamanlı değil, son güncelleme zamanını yansıtır. Kritik kararlar için whois doğrulaması yapmanızı öneririz.
Kod Örnekleri

Python

import requests

API_TOKEN = "df_aBcDeFgH..."
BASE_URL  = "https://yourdomain.com/api/v1"

def search_domains(length, ends_with, tlds="com,net"):
    resp = requests.get(
        f"{BASE_URL}/search",
        params={
            "length":   length,
            "endsWith": ends_with,
            "tlds":     tlds,
        },
        headers={"X-Api-Token": API_TOKEN}
    )
    data = resp.json()
    if data["success"]:
        for d in data["domains"]:
            print(d["name"])
    else:
        print("Hata:", data["error"])

search_domains(8, "can")

JavaScript / Node.js

const API_TOKEN = "df_aBcDeFgH...";
const BASE_URL  = "https://yourdomain.com/api/v1";

async function searchDomains(length, endsWith, tlds = "com,net") {
  const params = new URLSearchParams({ length, endsWith, tlds });
  const res = await fetch(`${BASE_URL}/search?${params}`, {
    headers: { "X-Api-Token": API_TOKEN }
  });
  const data = await res.json();
  if (data.success) {
    data.domains.forEach(d => console.log(d.name));
  } else {
    console.error("Hata:", data.error);
  }
}

searchDomains(8, "can");

C# / HttpClient

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-Api-Token", "df_aBcDeFgH...");

var url = "https://yourdomain.com/api/v1/search?length=8&endsWith=can&tlds=com,net";
var response = await client.GetFromJsonAsync<SearchResult>(url);

foreach (var domain in response!.Domains)
    Console.WriteLine(domain.Name);

cURL

curl -X GET "https://yourdomain.com/api/v1/search?length=8&endsWith=can&tlds=com" \
  -H "X-Api-Token: df_aBcDeFgH..."