Haritaya Dön

API & Veri Platformu

Sismik Harita verilerine programatik erişim, veri dışa aktarma ve API yönetimi

Fiyatlandırma

İhtiyacınıza uygun planı seçin. Ücretsiz plan ile hemen başlayın.

Ücretsiz Plan
$0 / ay
  • 100 istek / gün
  • 50 satır export
  • API anahtarı gerekmez
  • Tüm endpointlere erişim
Hesap gerekmez
Pro Plan
$29 / ay
  • Sınırsız API isteği
  • 100K satır export
  • Öncelikli destek
  • Yüksek hız limiti
Giriş Yap & Yükselt

API Anahtarı

API anahtarı almak ve kullanım istatistiklerinizi görmek için giriş yapın.

API anahtarı olmadan da günlük 100 isteğe kadar ücretsiz kullanabilirsiniz. Anahtar, kullanım takibi ve daha yüksek limitler için gereklidir.

Veri Dışa Aktarma

Deprem verilerini CSV veya JSON formatında indirin.

CSV
JSON

Giriş

Sismik Harita API'si, Türkiye ve çevresindeki deprem verilerine JSON formatında erişim sağlar.

Base URLhttps://sismikharita.com
FormatJSON (UTF-8)
ZamanUTC (YYYY-MM-DD HH:MM:SS)
Rate Limit/api.php: anahtarsız ya da ücretsiz anahtarla 100 istek/gün (sayaç TSİ gece yarısı sıfırlanır) · Pro: Sınırsız. Yanıtta X-RateLimit-Plan; ücretsiz planda X-RateLimit-Limit ve X-RateLimit-Remaining başlıkları da gelir. API anahtarı olmadan aynı IP'den dakikada en çok 120 istek yapılabilir.
Kimlik DoğrulamaOpsiyonel — Authorization: Bearer sk_..., X-API-Key: sk_... veya ?api_key=sk_.... /api.php 30 günden uzun aralıklar için ister.
CORSTüm originlere açık (*)
/api.php ve /station_api.php ETag başlığı gönderir. If-None-Match ile koşullu istek gönderin; ETag eşleşirse yanıt 304 olur.

Deprem Listesi

GET /api.php

Filtreleme parametreleriyle deprem listesi döndürür. Sonuçlar en yeniden eskiye sıralıdır.

Parametreler

ParametreTipAçıklamaÖrnek
date_from YYYY-MM-DD Başlangıç tarihi, UTC; gün başından itibaren (varsayılan: TSİ takvimine göre 7 gün önce) 2026-03-01
date_to YYYY-MM-DD Bitiş tarihi, UTC, gün sonu dahil (varsayılan: TSİ takvimine göre bugün) 2026-03-28
min_magnitude float Minimum büyüklük (varsayılan: 0) 3.0
max_magnitude float Maksimum büyüklük (varsayılan: 10) 7.0
sources string Kaynak, virgülle ayrılmış: kandilli, afad, usgs, emsc, gfz, noa, iris, turhec, historical. Kaynaklardan biri depremi bildirdiyse deprem listelenir. kandilli,afad
limit int Sonuç limiti (varsayılan: 5000). Tam yanıtta aynı depremin farklı kaynak kayıtları limit uygulandıktan sonra birleştirilir, bu yüzden count limitten az olabilir. compact=1 ile varsayılan sınırsızdır; limit verilirse en büyük N deprem döner. 100
compact 1 Kısa alan adlarıyla hafif yanıt. 10 yıllık tarih aralığı sınırı uygulanmaz. 1
year_from / year_to int Yıl aralığı (negatif değer MÖ). Yalnızca yılı ayrıca saklanan Tarihsel Katalog kayıtlarında (MÖ 2100 – MS 1963) çalışır; canlı ve TURHEC kayıtları eşleşmez. Biri verilirse date_from / date_to yok sayılır. 1900
preset string Sabit olay penceresi: kahramanmaras2023 veya marmara1999. Tarih ve limit parametrelerini geçersiz kılar, compact yanıt verir. Bilinmeyen değer yok sayılır. marmara1999
countries string Ülke bölgeleri, virgülle ayrılmış: TR, KKTC, AZ, GR, CY. Bilinmeyen kodlar yok sayılır. TR,KKTC
geo world Tüm dünya, yalnızca M4.0+ world
il int (1-81) İl plaka kodu; kıyı suları dahil 34
include_global_m4 0 / 1 Varsayılan bölgeye ek olarak dünya genelindeki M4.0+ depremler 1
Coğrafya filtresi olarak yalnızca biri uygulanır, bu sırayla: il, geo, countries. Hiçbiri yoksa (ya da countries yalnızca bilinmeyen kodlar içeriyorsa) Türkiye ve çevresi döner (31–46°K, 20–49°D); include_global_m4=1 yalnızca bu durumda etkilidir.
30 günden uzun tarih aralıkları için giriş ya da API anahtarı gerekir (preset hariç). compact=1 olmadan tarih aralığı en çok 10 yıl olabilir.

Önbellek

  • Cache-Control: public, max-age=30, must-revalidate
  • ETag her dakika ve parametrelere göre değişir. Aynı If-None-Match değeri 304 döndürür.
  • preset istekleri: Cache-Control: public, max-age=86400, immutable, sabit ETag.

Örnek İstek

# Son 7 günün en yeni 100 depremi (M3.0+) curl "https://sismikharita.com/api.php?min_magnitude=3.0&limit=100"

Örnek Yanıt

{ "status": "success", "generated_at": "2026-03-27 08:15:02", "count": 1, "earthquakes": [ { "id": 936144, "event_id": "f98058f38d19...", "occurred_at": "2026-03-27 08:14:32", "latitude": 40.5612, "longitude": 36.5734, "depth_km": 7.2, "magnitude": 4.1, "magnitude_ml": 4.1, "magnitude_md": null, "magnitude_mw": null, "location": "ERBAA (TOKAT)", "display_location": "Erbaa (Tokat)", "source": "kandilli", "sources": [{ "name": "kandilli", "magnitude": 4.1, ... }], "sismik_id": "S41-TR2603-A00", ... } ] }

Zamanlar UTC'dir. Her deprem ayrıca geo_location, quality, is_primary, pager_alert, felt_count, tsunami, mmi, np1, np2, mt_solution_count, emsc_testimony_count ve mt_source_agency alanlarını taşır.

Compact Yanıt

compact=1 ve preset istekleri kısa alan adları kullanır: i id, t zaman, a enlem, o boylam, d derinlik, m büyüklük, l konum, s kaynak.

{ "status": "success", "generated_at": "...", "count": 1, "earthquakes": [ { "i": 936144, "t": "2026-03-27 08:14:32", "a": 40.5612, "o": 36.5734, "d": 7.2, "m": 4.1, "l": "Erbaa (Tokat)", "s": "kandilli" } ] }

Hata Yanıtları

KodNedenGövde
400 Geçersiz parametre ya da 10 yıldan uzun aralık {"status":"error","message":"...","generated_at":"...","count":0,"earthquakes":[]}
401 30 günden uzun aralık, giriş ya da anahtar yok {"status":"error","code":"AUTH_REQUIRED","message":"..."}
403 API anahtarı olmadan: User-Agent yok, 10 karakterden kısa ya da otomatik araç adı içeriyor {"error":"User-Agent header required"} ya da {"error":"Automated access detected. ..."}
429 Günlük limit aşıldı ya da geçersiz API anahtarı (Retry-After: 86400) {"error":"Rate limit exceeded","message":"...","limit":100,"used":100,"upgrade_url":"..."}
429 API anahtarı olmadan aynı IP'den dakikada 120'den fazla istek (Retry-After: 60) {"error":"Too many requests. Please slow down or use an API key."}

401, 403 ve 429 yanıtları nedeni X-Block-Reason başlığında da taşır. Uygulamaların artık geçerli olmayan cihaz jetonu (snk_...) ile yaptığı uzun aralıklı isteklerde 401 gövdesi {"status":"error","code":"invalid_device_token","message":"Unauthorized"} olur ve WWW-Authenticate: Bearer başlığı gelir.

Deprem Detayı

GET /deprem_api.php

Tek bir depremin detaylı bilgilerini döndürür: kaynak verileri, moment tensör çözümleri, hissedilme raporları ve detay alanları.

Parametreler

ParametreTipAçıklamaÖrnek
id int Deprem ID numarası 936144
date YYYY-MM-DD Tarih (slug ile birlikte) 2026-03-13
slug string SEO slug (date ile birlikte) erbaa-tokat-m5-3
sismik_id string SismikID, kısa ya da hassas biçim S53-TR2603-A00
id, date + slug çifti ya da sismik_id parametrelerinden biri kullanılmalıdır.

Örnek İstek

curl "https://sismikharita.com/deprem_api.php?id=936144"

Örnek Yanıt

{ "status": "success", "earthquake": { "id": 936144, "event_id": "f98058f38d19...", "occurred_at": "2026-03-13 09:22:15", "latitude": 40.3821, "longitude": 36.5412, "depth_km": 8.4, "magnitude": 5.3, "magnitude_ml": 5.3, "magnitude_md": null, "magnitude_mw": null, "location": "ERBAA (TOKAT)", "display_location": "Erbaa (Tokat)", "quality": "...", "source": "kandilli", "detail": { ... }, "felt_total": 0, "moment_tensor_solutions": [ ... ], "sources": [ ... ], "slug": "erbaa-tokat-m5-3", "date_str": "2026-03-13", "canonical_url": "/deprem/2026-03-13/erbaa-tokat-m5-3", "sismik_id": "S53-TR2603-A00", "sismik_id_precise": "..." } }

Hatalar {"status":"error","message":"..."} biçimindedir: geçersiz ya da eksik parametre 400, deprem bulunamadı 404, sunucu hatası 500.

Hızlı İstatistikler

GET /stats_api.php

Veritabanındaki toplam deprem sayısı, bugünün depremleri, ortalama ve maksimum büyüklük. Sunucu yanıtı 30 saniye önbellekte tutar.

Örnek İstek

curl "https://sismikharita.com/stats_api.php"

Örnek Yanıt

{ "status": "success", "total": 1177312, "today": 107, "avg_magnitude": 2.1, "max_magnitude": 8.1 }

Hata: 500, {"status":"error","message":"..."}.

Sismik İstasyonlar

GET /station_api.php

Sismik istasyon konumlarını döndürür (AFAD, Kandilli, GFZ, NOA, IRIS, GeoShake).

Parametreler

ParametreTipAçıklamaÖrnek
source string İstasyon kaynağı: afad, kandilli, gfz, noa, iris, geoshake (varsayılan: tümü) afad
active_only 0 / 1 Yalnızca aktif istasyonlar (varsayılan: 1) 0

Örnek İstek

curl "https://sismikharita.com/station_api.php?source=afad"

Örnek Yanıt

{ "status": "success", "count": 1, "stations": [ { "station_code": "...", "source": "afad", "network": "...", "name": "...", "latitude": 39.92, "longitude": 32.85, "elevation_m": 890, "sensor_type": "...", "province": "Ankara", "district": "...", "is_active": true, "started_at": "...", "stopped_at": null } ] }

Yanıt saatlik değişen bir ETag taşır. Geçersiz source: 400, {"status":"error","message":"..."}.

Veri Dışa Aktarma API

GET /export.php

Deprem kayıtlarını CSV ya da JSON dosyası olarak indirir. Bölge filtresi yoktur; tüm kayıtlar en yeniden eskiye sıralı döner.

Parametreler

ParametreTipAçıklamaÖrnek
format csv / json Dosya biçimi (varsayılan: csv). Başka değerler csv sayılır. json
date_from YYYY-MM-DD Başlangıç tarihi, UTC; gün başından itibaren (varsayılan: TSİ takvimine göre 30 gün önce) 2026-03-01
date_to YYYY-MM-DD Bitiş tarihi, UTC, gün sonu dahil (varsayılan: TSİ takvimine göre bugün) 2026-03-28
min_magnitude / max_magnitude float Büyüklük sınırları (varsayılan: sınır yok) 4.0
source string Tek kaynak adı, küçük harf (ör. kandilli, afad, usgs). /api.php'deki sources'tan farklı olarak yalnızca depremin ana kaynağıyla eşleşir. Varsayılan: tümü. afad
limit int Satır sayısı. Varsayılan ve üst sınır plan limitidir: ücretsiz 50, Pro 100.000. 50
Geçersiz değerler hata döndürmez, varsayılana döner. Anahtarsız ya da ücretsiz anahtarla günde 50 dışa aktarma isteği yapılabilir; aşılırsa yanıt 429 olur (Retry-After: 86400, gövde /api.php ile aynı).

Yanıt

  • CSV: UTF-8 (BOM ile), sütunlar ID, Tarih, Enlem, Boylam, Derinlik_km, Buyukluk, Konum, Kaynak.
  • JSON: {"export":true,"count":...,"plan":"free","filters":{...},"data":[...],"attribution":"..."}; data satırlarında id, occurred_at, latitude, longitude, depth_km, magnitude, location, source alanları bulunur.
  • Dosya adı: sismikharita-export-YYYY-MM-DD.csv ya da .json (Content-Disposition: attachment).

Örnek İstek

curl -H "Authorization: Bearer sk_xxxxxxxxxxxx" \ "https://sismikharita.com/export.php?format=json&date_from=2026-03-01&date_to=2026-03-28&min_magnitude=4.0&source=afad" \ -o deprem.json

RSS Beslemesi

GET /rss

Türkiye ve çevresindeki (31–46°K, 20–49°D) son 50 deprem (M3.0+) RSS 2.0 formatında, GeoRSS koordinatlarıyla birlikte.

  • Format: RSS 2.0 + GeoRSS namespace
  • Minimum büyüklük: 3.0
  • Sonuç limiti: 50
  • Önbellek: 5 dakika

Örnek İstek

curl "https://sismikharita.com/rss"
RSS beslemesini Feedly, Inoreader veya herhangi bir RSS okuyucuya ekleyerek deprem bildirimlerini takip edebilirsiniz.

Kod Örnekleri

Ana endpoint (/api.php) için farklı dillerde örnek kullanım:

# 20–27 Mart 2026 arasındaki en yeni 50 deprem (M3.0+) curl -s "https://sismikharita.com/api.php?\ min_magnitude=3.0&\ date_from=2026-03-20&\ date_to=2026-03-27&\ limit=50" | python3 -m json.tool # ETag ile koşullu istek (304 desteği) curl -s -H "If-None-Match: \"abc123\"" \ -w "\nHTTP Status: %{http_code}\n" \ "https://sismikharita.com/api.php" # API anahtarı ile istek curl -s -H "Authorization: Bearer sk_xxxxxxxxxxxx" \ "https://sismikharita.com/api.php?min_magnitude=4.0"
async function getEarthquakes() { const params = new URLSearchParams({ min_magnitude: '3.0', date_from: '2026-03-20', date_to: '2026-03-27', limit: '50' }); const response = await fetch( `https://sismikharita.com/api.php?${params}` ); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const data = await response.json(); console.log(`${data.count} deprem bulundu`); for (const eq of data.earthquakes) { console.log( `M${eq.magnitude} - ${eq.location} (${eq.occurred_at})` ); } } getEarthquakes();
import requests # 20–27 Mart 2026 arasındaki en yeni 50 deprem (M3.0+) response = requests.get( "https://sismikharita.com/api.php", params={ "min_magnitude": 3.0, "date_from": "2026-03-20", "date_to": "2026-03-27", "limit": 50, }, headers={"User-Agent": "MyApp/1.0 ([email protected])"} # anahtarsız isteklerde en az 10 karakter ) response.raise_for_status() data = response.json() print(f"{data['count']} deprem bulundu") for eq in data["earthquakes"]: print( f"M{eq['magnitude']} - {eq['location']} " f"({eq['occurred_at']})" )

Kullanım Koşulları

  • Ticari olmayan kullanım için ücretsizdir.
  • Kaynak gösterimi zorunludur: Veri kaynağı: Sismik Harita (sismikharita.com)
  • Veriler olduğu gibi sunulur, garanti verilmez.
  • Aşırı kullanımdan kaçınılmalı, makul istek hızı korunmalıdır.
  • API anahtarı olmadan /api.php isteklerinde en az 10 karakterlik bir User-Agent başlığı gerekir; bot, crawler, spider, scrapy, python-requests, python-urllib ya da wget/ içeren değerler reddedilir (403).
Deprem verileri bilgilendirme amaçlıdır. Resmi veriler için AFAD ve Kandilli Rasathanesi web sitelerini ziyaret edin.