Kaynak: https://oguzerol.com/google-sheets-api-veri-cekme/
[
Görseli büyüt](https://oguzerol.com/gorseller/hizmet-kapaklari/gunluk-api-veri-aktarma-uygulamasi-webapp-v1-tr.webp)
# Google Sheets API Veri Çekme: JSON Verisini Tabloya Aktarma
[Oğuz Erol](https://oguzerol.com/hakkimda/) | 2 dk okuma | Yayın: 9 Ekim 2026
## Kısa özet
Google Sheets'e API'den JSON verisi çekmek için Apps Script örneğiyle başlayın. Yanıtı kontrol edin, alanları eşleyin ve başarısız aktarımda veriyi koruyun.
Google Sheets’e API’den veri çekmek, bir hizmetin izin verdiği bağlantıdan yapılandırılmış bilgi alıp hücrelere yazmak demektir. JSON yanıtında ürün kodu ve stok gibi alanlar bulunabilir. API adresi, yanıt yapısı ve erişim koşulları belli olmadan yalnız bir kod parçasını çalıştırmak güvenilir aktarım oluşturmaz.
## Önce JSON alanlarını inceleyin
Kurgusal yanıtımızda iki ürün var: `[{"code":"K101","stock":24},{"code":"A101","stock":8}]`. Sizin kaynağınız başka adlar, iç içe alanlar veya birden fazla sayfa kullanabilir. Kodun yanıtı gerçekten bu yapıda aldığını doğrulayın.
Sheets’te Uzantılar → Apps Script bölümünü açın. `Stok` adlı hedef sayfa oluşturun. Aşağıdaki başlangıç örneğinde URL’yi kendi yetkili kaynağınızla değiştirmelisiniz. Örnek kimlik doğrulaması ve zamanlama içermez. Ürün kodu harf, rakam, alt çizgi veya kısa çizgiden oluşan metin; stok ise sayı olmalıdır. Ayrı, boş hedef sayfada deneyin: sonuçlar A1 hücresinden başlayarak yazılır.
```
function stokAl() {
const response = UrlFetchApp.fetch('https://example.com/stock.json',
{muteHttpExceptions: true});
if (response.getResponseCode() !== 200) throw new Error('Kaynak alınamadı');
const data = JSON.parse(response.getContentText());
if (!Array.isArray(data) || !data.length) throw new Error('Liste yok');
const rows = data.map(item => {
if (!item || typeof item !== 'object' ||
typeof item.code !== 'string' || !/^[-A-Za-z0-9_]+$/.test(item.code) ||
typeof item.stock !== 'number' || !Number.isFinite(item.stock)) {
throw new Error('Alanlar uygun değil');
}
return [item.code, item.stock];
});
const sheet = SpreadsheetApp.getActive().getSheetByName('Stok');
if (!sheet) throw new Error('Hedef sayfa yok');
sheet.getRange(1, 1, rows.length, 2).setValues(rows);
}
```
[Google’ın UrlFetchApp belgesi](https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app) dış isteği, [Range belgesi](https://developers.google.com/apps-script/reference/spreadsheet/range#setValues(Object%29) tabloya yazmayı açıklar. İlk çalıştırmada gerekli izinleri inceleyin.
## Bu örnek neden doğrudan üretim sistemi değil?
Kod yanıtı kontrol etmeden tabloyu boşaltmaz. Fakat eski listede daha fazla ürün varsa altta kalan satırları temizleme politikası yoktur. Yeni listede bulunmayan ürünün silinmiş mi, geçici olarak eksik mi olduğunu belirlemeden eski satırları kaldırmak da doğru değildir.
Tekrar çalıştırma, HTTP hata yanıtı, bozuk JSON ve boş liste ayrı test durumlarıdır. Kaynak stok alanını metin olarak döndürüyorsa sayıya dönüştürme kuralını açıkça belirleyin. Eksik değeri otomatik sıfır stok saymak yanlış satış kararına yol açabilir. Aynı ürünün iki satırda gelmesi ve kaynağın sayfalama kullanması da işlenmelidir.
Ürün adını tek kimlik saymayın. Adı değişen ürünün aynı kayıt olduğunu anlayabilmek için kaynak kodunu koruyun. Hedef dosyada elle eklenen açıklamalar varsa yeni aktarımın bunları ezip ezmeyeceğini kararlaştırın. Her sütunun hangi kaynaktan yönetildiği belli olmalıdır.
## Günlük çalışmada sonucu görünür tutun
Apps Script planlı çalıştırılabilir; ancak erişim süresi, kota ve kaynak gecikmesi sonucu etkiler. Son başarılı kontrol ile son deneme ayrı kaydedilmelidir. Alınamayan veri eski değerle devam edecekse güncelmiş gibi gösterilmemelidir. Tek kaynak ve basit tablo için küçük bir script yeterli olabilir.
İnceleme kuyruğu, yetkiler ve tekrar işleme gerektiğinde [günlük veri aktarımı uygulaması](https://oguzerol.com/gunluk-api-veri-aktarma-uygulamasi/) geliştiriyorum. İki tarafta değişiklik varsa [Sheets çift yönlü senkronizasyon](https://oguzerol.com/google-sheets-cift-yonlu-senkronizasyon/) farklı kapsamdır. Genel ekip ekranı için [Excel web uygulaması](https://oguzerol.com/excel-web-uygulamasi/) yaklaşımına bakabilirsiniz.
## Sıkça Sorulan Sorular
### Her API aynı JSON yapısını kullanır mı?
Hayır. Alanlar, sayfalama ve erişim kuralları kaynağa göre değişir.
### Başarısız istekte stok sıfırlanmalı mı?
Sıfır stok ile alınamayan veri ayrı durumlar olmalıdır. Hangi bilginin kullanılacağı işletme kuralıdır.
## İhtiyacınızı konuşalım
[Kaynağınızı ve hedef tablonuzu konuşalım](https://oguzerol.com/iletisim/).
[Başa dön ↑](https://oguzerol.com/google-sheets-api-veri-cekme/#icerik)
## Bunları da okumak ister misiniz?
[Google Sheets Webden Veri Çekme: IMPORTHTML ile BaşlangıçGoogle Sheets webden veri çekme için IMPORTHTML örneğini deneyin. Tablo kaynağı, yenileme ve eski verinin görünürlüğünü kontrol ederek uygun yöntemi seçin.](https://oguzerol.com/google-sheets-webden-veri-cekme/)[Google Sheets E-posta Bildirimi ve Eşik UyarılarıGoogle Sheets e-posta bildirimi seçeneklerini değerlendirin. Gider veya stok eşiği için tekrar bildirim, sorumlu ve kapanma kuralları olan akış kuruyorum.](https://oguzerol.com/google-sheets-esik-uyari-uygulamasi/)[Her Gün API'den Veri Çeken Web UygulamasıAPI verisini her gün alıp uygun ve hatalı kayıtları ayıran uygulama hazırlıyorum. Çalışma geçmişi, yeniden deneme ve kaynak zamanı için kapsamı konuşalım.](https://oguzerol.com/gunluk-api-veri-aktarma-uygulamasi/)
[Tüm yazılara göz atın →](https://oguzerol.com/yazilarim/)