Ücretsiz Test Verisi API

Test verisi API ile sitedeki bütün araçlar tek bir adreste: TC kimlik no, yabancı kimlik no, VKN, IBAN, kart, test kişi üret ya da numara doğrula. Anahtar yok, kayıt yok.

REST · JSON · GET

API adresi

GEThttps://tc-uret.com/api/v1/

Siteye girmeden, kendi kodundan, testlerinden ya da terminalden bu adrese istek gönder; ne istediğini tur parametresiyle söyle. Anahtar ya da kayıt gerekmez. Nasıl kullanılır ↓

Deneme alanı

Gerçek kullanımda test verisi API adresini kendi kodundan çağırırsın. Burada parametreleri seçip oluşan adresi ve API'nin döndüğü yanıtı önceden görebilirsin.

GEThttps://tc-uret.com/api/v1/?tur=tckn
Yanıt burada görünecek
{
    "ok": true,
    "tur": "tckn",
    "veri": [
        "78486518838",
        "93124425392",
        "14289472434"
    ]
}

Test verisi API ile 30 saniyede başla

Kurulum, paket yükleme, kayıt ya da anahtar yok. Bu REST API'ye bir GET isteği göndermen yeterli; yanıt JSON olarak gelir. TC kimlik API'si, VKN, IBAN ve test kişi üretimi aynı adresten çalışır.

Adım 1

Adresi al

Bütün işlemler tek adreste. Ne istediğini tur parametresiyle söylersin.

https://tc-uret.com/api/v1/
Adım 2

Parametreleri ekle

Adet, biçim, banka, alanlar gibi seçenekler sorgu parametresi olarak eklenir.

?tur=iban&adet=5&banka=00062
Adım 3

Yanıtı kullan

JSON yanıtta ok başarıyı, veri sonucu, hata sorunu söyler.

{ "ok": true, "veri": [ … ] }
curl "https://tc-uret.com/api/v1/?tur=tckn&adet=3"

Projene ve test araçlarına ekle

Postman ve Insomnia'ya tek adımda aktar, projende hazır bir yardımcı fonksiyon kullan, Playwright ve Cypress testlerinde her koşuda yeni veriyle çalış.

Postman ve Insomnia'ya aktarma

Test verisi API'sini Postman'e eklemek tek adımdır. OpenAPI 3 tanımı https://tc-uret.com/api/v1/openapi.php adresinde. Postman'de Import düğmesine bas, Link sekmesine bu adresi yapıştır; bütün parametreleriyle hazır bir koleksiyon oluşur. Insomnia'da Import from URL, Bruno ve diğer OpenAPI uyumlu araçlarda da aynı adres çalışır.

Projende yardımcı fonksiyon

Aşağıdaki küçük fonksiyonu projene ekleyerek test verisi API'sini tek satırla çağırabilirsin. İstek sınırına takılırsa sunucunun söylediği süre kadar bekleyip tekrar dener, hata durumunda anlaşılır bir hata fırlatır. Node 18 ve üzeri ile bütün modern tarayıcılarda ek paket gerektirmeden çalışır.

test-verisi.js
const API = 'https://tc-uret.com/api/v1/';

// İstek sınırına takılırsa Retry-After kadar bekleyip en fazla 3 kez dener
export async function testVerisi(parametreler) {
  const url = API + '?' + new URLSearchParams(parametreler);
  for (let deneme = 0; deneme < 3; deneme++) {
    const yanit = await fetch(url);
    if (yanit.status === 429) {
      const bekle = Number(yanit.headers.get('Retry-After') || 1);
      await new Promise((r) => setTimeout(r, bekle * 1000));
      continue;
    }
    const govde = await yanit.json();
    if (!govde.ok) throw new Error(govde.hata);
    return govde.veri;
  }
  throw new Error('İstek sınırı aşıldı, daha sonra tekrar dene.');
}

// Kullanım: const kisiler = await testVerisi({ tur: 'kisi', adet: 10 });

Playwright ve Cypress testlerinde kullanma

Uçtan uca testlerde her koşuda yeni bir kişiyle kayıt olmak, "bu TC kimlik numarası zaten kayıtlı" gibi hataları ortadan kaldırır. CI hattında test verisi API'sine her koşuda bağlı kalmak istemiyorsan, son örnekteki gibi veriyi bir kez üretip fikstür dosyası olarak projene ekle.

import { test, expect } from '@playwright/test';

test('yeni kullanıcı kaydı', async ({ page, request }) => {
  const yanit = await request.get('https://tc-uret.com/api/v1/?tur=kisi&alanlar=ad,soyad,tckn,eposta');
  const [kisi] = (await yanit.json()).veri;
  await page.goto('/kayit');
  await page.fill('#ad', kisi.ad);
  await page.fill('#soyad', kisi.soyad);
  await page.fill('#tckn', kisi.tckn);
  await page.fill('#eposta', kisi.eposta);
  await page.click('button[type=submit]');
  await expect(page.getByText('Kayıt tamamlandı')).toBeVisible();
});

Test verisi API uç nokta referansı

Bütün işlemler /api/v1/ adresine gönderilen GET istekleridir; örneğin bir TCKN API isteği için tur=tckn yeterlidir. Örnek yanıtlar sayfa açıldığında API'nin kendisinden üretilir.

TC kimlik no üret

tur=tckn

Algoritmaya uygun, benzersiz TC kimlik numaraları. Araç sayfası →

ParametreTipVarsayılanAçıklama
adetsayı1Kaç kayıt üretilecek (1–1000).
formatmetinjsonYanıt biçimi: json, csv, txt ya da sql.
tablometin—format=sql için tablo adı.
GEThttps://tc-uret.com/api/v1/?tur=tckn&adet=3
Örnek yanıt
{
    "ok": true,
    "tur": "tckn",
    "veri": [
        "65476974064",
        "28510979258",
        "58175421250"
    ]
}

Yabancı kimlik no üret

tur=ykn

99 ile başlayan, algoritmaya uygun yabancı kimlik numaraları. Araç sayfası →

ParametreTipVarsayılanAçıklama
adetsayı1Kaç kayıt üretilecek (1–1000).
formatmetinjsonYanıt biçimi: json, csv, txt ya da sql.
tablometin—format=sql için tablo adı.
GEThttps://tc-uret.com/api/v1/?tur=ykn&adet=3
Örnek yanıt
{
    "ok": true,
    "tur": "ykn",
    "veri": [
        "99232900486",
        "99260117498",
        "99615184878"
    ]
}

Vergi kimlik no üret

tur=vkn

GİB algoritmasına uygun 10 haneli vergi kimlik numaraları. Araç sayfası →

ParametreTipVarsayılanAçıklama
adetsayı1Kaç kayıt üretilecek (1–1000).
formatmetinjsonYanıt biçimi: json, csv, txt ya da sql.
tablometin—format=sql için tablo adı.
GEThttps://tc-uret.com/api/v1/?tur=vkn&adet=3
Örnek yanıt
{
    "ok": true,
    "tur": "vkn",
    "veri": [
        "3399259813",
        "4180707264",
        "8777764517"
    ]
}

TR IBAN üret

tur=iban

MOD-97 geçerli TR IBAN. Banka kodu verilmezse banka rastgele seçilir. Araç sayfası →

ParametreTipVarsayılanAçıklama
adetsayı1Kaç kayıt üretilecek (1–1000).
bankametinrastgele5 haneli banka kodu, örn. 00062.
bicimmetinbitisikbitisik ya da bosluklu.
formatmetinjsonYanıt biçimi: json, csv, txt ya da sql.
tablometin—format=sql için tablo adı.
GEThttps://tc-uret.com/api/v1/?tur=iban&adet=2&banka=00064
Örnek yanıt
{
    "ok": true,
    "tur": "iban",
    "veri": [
        "TR490006404468480001220669",
        "TR350006408179648721810663"
    ]
}

Kart numarası üret

tur=kart

Luhn kontrolünden geçen rastgele kart numarası, son kullanma tarihi ve CVC. Ödeme testinde çalışmaz. Araç sayfası →

ParametreTipVarsayılanAçıklama
adetsayı1Kaç kayıt üretilecek (1–1000).
agmetinvisavisa, mc, troy ya da amex.
formatmetinjsonYanıt biçimi: json, csv, txt ya da sql.
tablometin—format=sql için tablo adı.
GEThttps://tc-uret.com/api/v1/?tur=kart&ag=troy&adet=2
Örnek yanıt
{
    "ok": true,
    "tur": "kart",
    "veri": [
        {
            "numara": "9792979472358116",
            "ag": "troy",
            "skt": "01/29",
            "cvc": "468"
        },
        {
            "numara": "9792756904839032",
            "ag": "troy",
            "skt": "11/30",
            "cvc": "300"
        }
    ]
}

Resmi sandbox test kartları

tur=test-kartlari

iyzico ve Stripe dokümanlarında yayınlanan test kartları. Araç sayfası →

ParametreTipVarsayılanAçıklama
saglayicimetiniyzicoiyzico ya da stripe.
grupmetintümüiyzico: basarili, yabanci, hata · stripe: basarili, 3ds, ret.
GEThttps://tc-uret.com/api/v1/?tur=test-kartlari&saglayici=stripe&grup=ret
Örnek yanıt
{
    "ok": true,
    "tur": "test-kartlari",
    "kaynak": "https://docs.stripe.com/testing",
    "veri": [
        {
            "numara": "4000000000000002",
            "ag": "visa",
            "grup": "ret",
            "aciklama": "Genel ret",
            "kod": "generic_decline"
        },
        {
            "numara": "4000000000009995",
            "ag": "visa",
            "grup": "ret",
            "aciklama": "Yetersiz bakiye",
            "kod": "insufficient_funds"
        }
    ]
}

Test kişi üret

tur=kisi

Ad, soyad, TC kimlik no, doğum tarihi, telefon, e-posta, adres ve IBAN içeren sahte kişiler. Araç sayfası →

ParametreTipVarsayılanAçıklama
adetsayı1Kaç kayıt üretilecek (1–1000).
alanlarmetinhepsiVirgülle ayrılmış alanlar: ad, soyad, cinsiyet, tckn, dogum, telefon, eposta, il, ilce, adres, iban.
cinsiyetmetinkarışıkkadin ya da erkek.
formatmetinjsonYanıt biçimi: json, csv, txt ya da sql.
tablometin—format=sql için tablo adı.
GEThttps://tc-uret.com/api/v1/?tur=kisi&adet=1&alanlar=ad,soyad,tckn,eposta
Örnek yanıt
{
    "ok": true,
    "tur": "kisi",
    "veri": [
        {
            "ad": "Zeynep",
            "soyad": "Keskin",
            "tckn": "69231359660",
            "eposta": "zeynep.keskin33@example.com"
        }
    ]
}

Doğrula

tur=dogrula

Numaranın algoritmaya uyup uymadığını kuralları tek tek göstererek kontrol eder. Virgülle ayırarak 1000 numaraya kadar gönderebilirsin. Araç sayfası →

ParametreTipVarsayılanAçıklama
tipmetintckntckn, ykn, vkn, iban ya da kart.
nometin(zorunlu)Kontrol edilecek numara; birden fazlası için virgülle ayır.
GEThttps://tc-uret.com/api/v1/?tur=dogrula&tip=tckn&no=10000000146
Örnek yanıt
{
    "ok": true,
    "tur": "dogrula",
    "veri": {
        "no": "10000000146",
        "gecerli": true,
        "kurallar": {
            "11_hane": true,
            "ilk_hane_sifir_degil": true,
            "hane_10": true,
            "hane_11": true
        }
    }
}

Kontrol hanelerini hesapla

tur=hesapla

İlk 9 haneden TC kimlik numarasının 10. ve 11. hanesini adım adım hesaplar. Araç sayfası →

ParametreTipVarsayılanAçıklama
nometin(zorunlu)İlk 9 hane (ya da 11 haneli numara).
GEThttps://tc-uret.com/api/v1/?tur=hesapla&no=100000001
Örnek yanıt
{
    "ok": true,
    "tur": "hesapla",
    "veri": {
        "ilk_9": "100000001",
        "tek_toplam": 2,
        "cift_toplam": 0,
        "hane_10": 4,
        "hane_11": 6,
        "numara": "10000000146",
        "ilk_hane_sifir": false,
        "girilen_gecerli": null
    }
}

Yanıt biçimleri, hatalar ve sınırlar

Test verisi API'sinin liste döndüren türleri format ile CSV, düz metin ya da SQL olarak da alınabilir. Varsayılan biçim JSON API yanıtıdır; hatalar her zaman JSON'dur.

200

BaşarılıJSON için { "ok": true, "tur", "adet", "veri" }. format=csv, txt ve sql düz metin döner; doğrudan dosyaya yazılabilir.

400

Hatalı istekEksik ya da geçersiz parametre. hata alanı neyin yanlış olduğunu ve geçerli değerleri söyler.

405

Yöntem desteklenmiyorYalnızca GET (ve CORS için OPTIONS) kabul edilir.

429

İstek sınırı aşıldıDakikada 60 istek. Retry-After başlığı kaç saniye beklemen gerektiğini söyler.

1000

Kayıt sınırıTek istekte en fazla 1.000 kayıt üretilir ya da doğrulanır. Daha fazlası için birkaç istek gönder.

CORS

Tarayıcıdan erişimTest verisi API'si bütün kaynaklara açık. X-RateLimit-Remaining başlığı kalan istek hakkını gösterir.

Örnek hata yanıtı · 400
{
    "ok": false,
    "hata": "adet 1 ile 1000 arasında bir tam sayı olmalı."
}

Sık sorulan sorular

Uç noktalar, istek sınırı ve entegrasyon hakkında sık gelen sorular.

Test verisi API ücretli mi, anahtar gerekiyor mu?

Hayır. Bu ücretsiz API için kayıt, anahtar ya da token gerekmez; adrese bir GET isteği göndermen yeterli.

İstek sınırı nedir?

IP adresi başına dakikada 60 istek ve tek istekte en fazla 1.000 kayıt. Sınırı aşarsan 429 yanıtı ve kaç saniye beklemen gerektiğini söyleyen Retry-After başlığı döner.

Tarayıcıdan, yani frontend kodundan çağırabilir miyim?

Evet. API CORS başlıklarıyla her kaynaktan gelen GET isteklerine açıktır; fetch ile doğrudan çağırabilirsin.

Gönderdiğim numaralar kaydediliyor mu?

Hayır. Doğrulama için gönderdiğin numaralar ya da üretilen veriler saklanmaz. İstek sınırı için yalnızca IP adresinin özeti (hash) bir dakikalık sayaçta tutulur.

Üretilen veriler gerçek mi?

Numaralar algoritmalara uyar ama rastgeledir; tesadüfen gerçek bir kişiye, şirkete ya da hesaba denk gelebilir. Bunu bilmeyiz ve sorgulamayız. API yalnızca yazılım testi içindir.

Postman ya da Insomnia'ya nasıl eklerim?

Postman'de Import, Link seçip https://tc-uret.com/api/v1/openapi.php adresini yapıştır. Insomnia'da da aynı adresi "Import from URL" ile içe aktarabilirsin.

Test verisi API'sinin çalışma süresi garantisi var mı?

Hayır. Ücretsiz bir hizmettir ve kesintisiz çalışma garantisi verilmez. CI hattında her koşuda API'ye bağımlı kalmak yerine veriyi bir kez üretip test fikstürü olarak projene eklemeni öneririz.

Yeni bir tür ya da alan önerebilir miyim?

Evet, iletişim sayfasından yazabilirsin. Mevcut adresler ve yanıt biçimi v1 sürümünde değişmeden kalır.