Türkiye'nin il, ilçe, mahalle ve sokak verilerine kolay erişim
Türkiye Adres API, Türkiye'deki iller, ilçeler, mahalleler ve sokaklar hakkında hiyerarşik coğrafi veri sağlayan bir RESTful API servisidir. Bu API sayesinde geliştiriciler, Türkiye'deki herhangi bir lokasyon için adres bileşenlerini kolayca sorgulayabilirler.
API'yi kullanabilmek için öncelikle bir API anahtarı almanız gerekmektedir. API anahtarı almak için aşağıdaki adımları izleyebilirsiniz:
Tüm API istekleri aşağıdaki temel URL üzerinden yapılmalıdır:
https://api.abdulsamet.com.tr/api.php
Her API isteğinde apikey
parametresi zorunludur.
Türkiye'deki tüm illerin listesini döndürür.
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
endpoint | string | Evet | Sabit değer: "iller" |
apikey | string | Evet | API anahtarınız |
{
"status": "success",
"data": [
{
"il_adi": "Adana"
},
{
"il_adi": "Adıyaman"
},
...
{
"il_adi": "Zonguldak"
}
]
}
Belirtilen il için tüm ilçelerin listesini döndürür.
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
endpoint | string | Evet | Sabit değer: "ilceler" |
il_adi | string | Evet | Sorgulanacak ilin adı (ör. "İstanbul") |
apikey | string | Evet | API anahtarınız |
{
"status": "success",
"data": [
{
"ilce_adi": "Adalar"
},
{
"ilce_adi": "Arnavutköy"
},
...
{
"ilce_adi": "Üsküdar"
}
]
}
Belirtilen ilçe için tüm mahallelerin listesini döndürür.
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
endpoint | string | Evet | Sabit değer: "mahalleler" |
ilce_adi | string | Evet | Sorgulanacak ilçenin adı (ör. "Kadıköy") |
apikey | string | Evet | API anahtarınız |
{
"status": "success",
"data": [
{
"mahalle_adi": "Acıbadem"
},
{
"mahalle_adi": "Bostancı"
},
...
{
"mahalle_adi": "Zühtüpaşa"
}
]
}
Belirtilen mahalle için tüm sokakların listesini döndürür.
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
endpoint | string | Evet | Sabit değer: "sokaklar" |
mahalle_adi | string | Evet | Sorgulanacak mahallenin adı (ör. "Acıbadem") |
apikey | string | Evet | API anahtarınız |
{
"status": "success",
"data": [
{
"sokak_adi": "Acıbadem Caddesi"
},
{
"sokak_adi": "Bayır Sokak"
},
...
{
"sokak_adi": "Yurt Sokak"
}
]
}
const apiKey = 'YOUR_API_KEY';
// İlleri Getir
fetch(`https://api.abdulsamet.com.tr/api.php?endpoint=iller&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
console.log('İller:', data.data);
} else {
console.error('Hata:', data.message);
}
})
.catch(error => console.error('API Hatası:', error));
// İlçeleri Getir (örnek: İstanbul)
fetch(`https://api.abdulsamet.com.tr/api.php?endpoint=ilceler&il_adi=İstanbul&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
console.log('İstanbul İlçeleri:', data.data);
} else {
console.error('Hata:', data.message);
}
})
.catch(error => console.error('API Hatası:', error));
const apiKey = 'YOUR_API_KEY';
// Axios kütüphanesini dahil ettiğinizden emin olun
//
// İlleri Getir
axios.get(`https://api.abdulsamet.com.tr/api.php?endpoint=iller&apikey=${apiKey}`)
.then(response => {
const data = response.data;
if (data.status === 'success') {
console.log('İller:', data.data);
} else {
console.error('Hata:', data.message);
}
})
.catch(error => console.error('API Hatası:', error));
// Mahalleleri Getir (örnek: Kadıköy)
axios.get(`https://api.abdulsamet.com.tr/api.php?endpoint=mahalleler&ilce_adi=Kadıköy&apikey=${apiKey}`)
.then(response => {
const data = response.data;
if (data.status === 'success') {
console.log('Kadıköy Mahalleleri:', data.data);
} else {
console.error('Hata:', data.message);
}
})
.catch(error => console.error('API Hatası:', error));
const apiKey = 'YOUR_API_KEY';
// jQuery kütüphanesini dahil ettiğinizden emin olun
//
// İlleri Getir
$.ajax({
url: 'https://api.abdulsamet.com.tr/api.php',
method: 'GET',
data: {
endpoint: 'iller',
apikey: apiKey
},
success: function(data) {
if (data.status === 'success') {
console.log('İller:', data.data);
} else {
console.error('Hata:', data.message);
}
},
error: function(xhr, status, error) {
console.error('API Hatası:', error);
}
});
// Sokakları Getir (örnek: Acıbadem)
$.ajax({
url: 'https://api.abdulsamet.com.tr/api.php',
method: 'GET',
data: {
endpoint: 'sokaklar',
mahalle_adi: 'Acıbadem',
apikey: apiKey
},
success: function(data) {
if (data.status === 'success') {
console.log('Acıbadem Sokakları:', data.data);
} else {
console.error('Hata:', data.message);
}
},
error: function(xhr, status, error) {
console.error('API Hatası:', error);
}
});
<!-- HTML Form -->
<form id="addressForm">
<div class="form-group">
<label for="ilSelect">İl Seçiniz:</label>
<select id="ilSelect" class="form-control">
<option value="">İl Seçiniz</option>
</select>
</div>
<div class="form-group">
<label for="ilceSelect">İlçe Seçiniz:</label>
<select id="ilceSelect" class="form-control" disabled>
<option value="">İlçe Seçiniz</option>
</select>
</div>
<div class="form-group">
<label for="mahalleSelect">Mahalle Seçiniz:</label>
<select id="mahalleSelect" class="form-control" disabled>
<option value="">Mahalle Seçiniz</option>
</select>
</div>
<div class="form-group">
<label for="sokakSelect">Sokak Seçiniz:</label>
<select id="sokakSelect" class="form-control" disabled>
<option value="">Sokak Seçiniz</option>
</select>
</div>
</form>
<script>
const apiKey = 'YOUR_API_KEY';
const apiUrl = 'https://api.abdulsamet.com.tr/api.php';
// İlleri Yükle
function loadIller() {
fetch(`${apiUrl}?endpoint=iller&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
const ilSelect = document.getElementById('ilSelect');
data.data.forEach(il => {
const option = document.createElement('option');
option.value = il.il_adi;
option.textContent = il.il_adi;
ilSelect.appendChild(option);
});
}
})
.catch(error => console.error('API Hatası:', error));
}
// İlçeleri Yükle
document.getElementById('ilSelect').addEventListener('change', function() {
const ilAdi = this.value;
const ilceSelect = document.getElementById('ilceSelect');
const mahalleSelect = document.getElementById('mahalleSelect');
const sokakSelect = document.getElementById('sokakSelect');
// Seçimleri sıfırla
ilceSelect.innerHTML = '<option value="">İlçe Seçiniz</option>';
mahalleSelect.innerHTML = '<option value="">Mahalle Seçiniz</option>';
sokakSelect.innerHTML = '<option value="">Sokak Seçiniz</option>';
mahalleSelect.disabled = true;
sokakSelect.disabled = true;
if (ilAdi) {
ilceSelect.disabled = false;
fetch(`${apiUrl}?endpoint=ilceler&il_adi=${encodeURIComponent(ilAdi)}&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
data.data.forEach(ilce => {
const option = document.createElement('option');
option.value = ilce.ilce_adi;
option.textContent = ilce.ilce_adi;
ilceSelect.appendChild(option);
});
}
})
.catch(error => console.error('API Hatası:', error));
} else {
ilceSelect.disabled = true;
}
});
// Diğer event listener'ları da benzer şekilde ekleyin...
// Sayfa yüklendiğinde illeri getir
document.addEventListener('DOMContentLoaded', loadIller);
</script>
Aşağıdaki örnek, yukarıdaki kodu genişleterek tam bir adres seçim formu uygular:
// İlçeleri Yükle
document.getElementById('ilSelect').addEventListener('change', function() {
const ilAdi = this.value;
const ilceSelect = document.getElementById('ilceSelect');
const mahalleSelect = document.getElementById('mahalleSelect');
const sokakSelect = document.getElementById('sokakSelect');
// Seçimleri sıfırla
ilceSelect.innerHTML = '<option value="">İlçe Seçiniz</option>';
mahalleSelect.innerHTML = '<option value="">Mahalle Seçiniz</option>';
sokakSelect.innerHTML = '<option value="">Sokak Seçiniz</option>';
mahalleSelect.disabled = true;
sokakSelect.disabled = true;
if (ilAdi) {
ilceSelect.disabled = false;
fetch(`${apiUrl}?endpoint=ilceler&il_adi=${encodeURIComponent(ilAdi)}&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
data.data.forEach(ilce => {
const option = document.createElement('option');
option.value = ilce.ilce_adi;
option.textContent = ilce.ilce_adi;
ilceSelect.appendChild(option);
});
}
})
.catch(error => console.error('API Hatası:', error));
} else {
ilceSelect.disabled = true;
}
});
// Mahalleleri Yükle
document.getElementById('ilceSelect').addEventListener('change', function() {
const ilceAdi = this.value;
const mahalleSelect = document.getElementById('mahalleSelect');
const sokakSelect = document.getElementById('sokakSelect');
// Seçimleri sıfırla
mahalleSelect.innerHTML = '<option value="">Mahalle Seçiniz</option>';
sokakSelect.innerHTML = '<option value="">Sokak Seçiniz</option>';
sokakSelect.disabled = true;
if (ilceAdi) {
mahalleSelect.disabled = false;
fetch(`${apiUrl}?endpoint=mahalleler&ilce_adi=${encodeURIComponent(ilceAdi)}&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
data.data.forEach(mahalle => {
const option = document.createElement('option');
option.value = mahalle.mahalle_adi;
option.textContent = mahalle.mahalle_adi;
mahalleSelect.appendChild(option);
});
}
})
.catch(error => console.error('API Hatası:', error));
} else {
mahalleSelect.disabled = true;
}
});
// Sokakları Yükle
document.getElementById('mahalleSelect').addEventListener('change', function() {
const mahalleAdi = this.value;
const sokakSelect = document.getElementById('sokakSelect');
// Seçimi sıfırla
sokakSelect.innerHTML = '<option value="">Sokak Seçiniz</option>';
if (mahalleAdi) {
sokakSelect.disabled = false;
fetch(`${apiUrl}?endpoint=sokaklar&mahalle_adi=${encodeURIComponent(mahalleAdi)}&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
data.data.forEach(sokak => {
const option = document.createElement('option');
option.value = sokak.sokak_adi;
option.textContent = sokak.sokak_adi;
sokakSelect.appendChild(option);
});
}
})
.catch(error => console.error('API Hatası:', error));
} else {
sokakSelect.disabled = true;
}
});
// Sayfa yüklendiğinde illeri getir
document.addEventListener('DOMContentLoaded', loadIller);
import React, { useState, useEffect } from 'react';
const AddressSelector = () => {
const apiKey = 'YOUR_API_KEY';
const apiUrl = 'https://api.abdulsamet.com.tr/api.php';
const [iller, setIller] = useState([]);
const [ilceler, setIlceler] = useState([]);
const [mahalleler, setMahalleler] = useState([]);
const [sokaklar, setSokaklar] = useState([]);
const [selectedIl, setSelectedIl] = useState('');
const [selectedIlce, setSelectedIlce] = useState('');
const [selectedMahalle, setSelectedMahalle] = useState('');
const [selectedSokak, setSelectedSokak] = useState('');
// İlleri yükle
useEffect(() => {
fetch(`${apiUrl}?endpoint=iller&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
setIller(data.data);
}
})
.catch(error => console.error('API Hatası:', error));
}, []);
// İl değiştiğinde ilçeleri yükle
useEffect(() => {
if (selectedIl) {
fetch(`${apiUrl}?endpoint=ilceler&il_adi=${encodeURIComponent(selectedIl)}&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
setIlceler(data.data);
}
})
.catch(error => console.error('API Hatası:', error));
} else {
setIlceler([]);
}
setSelectedIlce('');
setMahalleler([]);
setSelectedMahalle('');
setSokaklar([]);
setSelectedSokak('');
}, [selectedIl]);
// İlçe değiştiğinde mahalleleri yükle
useEffect(() => {
if (selectedIlce) {
fetch(`${apiUrl}?endpoint=mahalleler&ilce_adi=${encodeURIComponent(selectedIlce)}&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
setMahalleler(data.data);
}
})
.catch(error => console.error('API Hatası:', error));
} else {
setMahalleler([]);
}
setSelectedMahalle('');
setSokaklar([]);
setSelectedSokak('');
}, [selectedIlce]);
// Mahalle değiştiğinde sokakları yükle
useEffect(() => {
if (selectedMahalle) {
fetch(`${apiUrl}?endpoint=sokaklar&mahalle_adi=${encodeURIComponent(selectedMahalle)}&apikey=${apiKey}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
setSokaklar(data.data);
}
})
.catch(error => console.error('API Hatası:', error));
} else {
setSokaklar([]);
}
setSelectedSokak('');
}, [selectedMahalle]);
return (
<div className="address-selector">
<h3>Adres Seçimi</h3>
<div className="form-group">
<label htmlFor="ilSelect">İl:</label>
<select
id="ilSelect"
value={selectedIl}
onChange={(e) => setSelectedIl(e.target.value)}
>
<option value="">İl Seçiniz</option>
{iller.map((il, index) => (
<option key={index} value={il.il_adi}>
{il.il_adi}
</option>
))}
</select>
</div>
<div className="form-group">
<label htmlFor="ilceSelect">İlçe:</label>
<select
id="ilceSelect"
value={selectedIlce}
onChange={(e) => setSelectedIlce(e.target.value)}
disabled={!selectedIl}
>
<option value="">İlçe Seçiniz</option>
{ilceler.map((ilce, index) => (
<option key={index} value={ilce.ilce_adi}>
{ilce.ilce_adi}
</option>
))}
</select>
</div>
<div className="form-group">
<label htmlFor="mahalleSelect">Mahalle:</label>
<select
id="mahalleSelect"
value={selectedMahalle}
onChange={(e) => setSelectedMahalle(e.target.value)}
disabled={!selectedIlce}
>
<option value="">Mahalle Seçiniz</option>
{mahalleler.map((mahalle, index) => (
<option key={index} value={mahalle.mahalle_adi}>
{mahalle.mahalle_adi}
</option>
))}
</select>
</div>
<div className="form-group">
<label htmlFor="sokakSelect">Sokak:</label>
<select
id="sokakSelect"
value={selectedSokak}
onChange={(e) => setSelectedSokak(e.target.value)}
disabled={!selectedMahalle}
>
<option value="">Sokak Seçiniz</option>
{sokaklar.map((sokak, index) => (
<option key={index} value={sokak.sokak_adi}>
{sokak.sokak_adi}
</option>
))}
</select>
</div>
{selectedSokak && (
<div className="selected-address">
<h4>Seçilen Adres:</h4>
<p>
{selectedSokak}, {selectedMahalle}, {selectedIlce}, {selectedIl}
</p>
</div>
)}
</div>
);
};
export default AddressSelector;
Hata Mesajı | Açıklama | Çözüm |
---|---|---|
API anahtarı gerekli | API anahtarı belirtilmemiş. | apikey parametresi ile API anahtarınızı gönderdiğinizden emin olun. |
Geçersiz API anahtarı | Belirtilen API anahtarı geçersiz veya doğrulanmamış. | API anahtarınızın doğru olduğundan emin olun. Hesabınızı doğrulamadıysanız, e-posta doğrulama işlemini tamamlayın. |
Geçersiz endpoint | Belirtilen endpoint desteklenmiyor. | Geçerli bir endpoint kullanın: iller, ilceler, mahalleler veya sokaklar. |
İl adı eksik | İlçe sorgulaması için il adı belirtilmemiş. | ilceler endpoint'i için il_adi parametresi ekleyin. |
İlçe adı eksik | Mahalle sorgulaması için ilçe adı belirtilmemiş. | mahalleler endpoint'i için ilce_adi parametresi ekleyin. |
Mahalle adı eksik | Sokak sorgulaması için mahalle adı belirtilmemiş. | sokaklar endpoint'i için mahalle_adi parametresi ekleyin. |
Bu ilçeye bağlı mahalle bulunamadı | Belirtilen ilçe için kayıtlı mahalle bulunmuyor. | İlçe adını doğru yazdığınızdan emin olun veya farklı bir ilçe seçin. |
Bu mahalleye bağlı sokak bulunamadı | Belirtilen mahalle için kayıtlı sokak bulunmuyor. | Mahalle adını doğru yazdığınızdan emin olun veya farklı bir mahalle seçin. |
API kullanımınızda herhangi bir sorunla karşılaşırsanız, lütfen destek@api.abdulsamet.com.tr adresine e-posta gönderin.
API kullanımı aşağıdaki limitlere tabidir:
API, tüm kaynaklardan gelen isteklere izin verir (CORS). Bu, herhangi bir web sitesinden doğrudan API istekleri yapabileceğiniz anlamına gelir.
Adres verileri düzenli olarak güncellenir. Son güncelleme tarihi: 15 Nisan 2025
Güvenliğiniz için, API'ye sadece HTTPS üzerinden erişim sağlanabilir. HTTP istekleri reddedilir.