Ne okunur, ne döner
API üç veri ailesi sunar: döviz/altın, akaryakıt ve haberler. Hepsi salt-okunur — bu API üzerinden veri yazılmaz, silinmez.
- Güncel değer — bir şehir + ürün için son kayıt. Varsayılan davranış.
- Zaman serisi — history=true ya da *-history uçları; grafik için hazır.
- Haberler — son 14 günün süzülmüş başlıkları, özetleri ve görselleri.
Tüm istekler https://comboxdev.com/scraper önekiyle yapılır. Yollar bu önekin arkasına eklenir.
curl -s "https://comboxdev.com/scraper/api/currency" \ -H "X-API-Key: sk_…"
Veriler beş saatte bir toplanır, yani "güncel" değer en fazla bir toplama turu kadar eskiyebilir. Her kayıtta scraped_at alanı vardır.
Tek başlık yeter
Okuma uçları X-API-Key başlığı ister. Anahtarlar sk_ önekiyle üretilir ve sahibi tarafından arşiv panelinin Yönetim bölümünden verilir.
GET /scraper/api/fuel?city=Hatay&fuel_type=benzin
X-API-Key: sk_…
| Anahtar ömrü | Değer |
|---|---|
| 1 saat | hourly |
| 24 saat | daily |
| 7 gün | weekly |
| 30 gün | monthly |
| Süresiz | never |
Anahtar yalnızca üretildiği anda bir kez gösterilir. Kaybolursa yenisini isteyin; eski anahtar iptal edilir.
Kullanılabilir yollar
Anahtarsız
| Yöntem | Yol | Dönen |
|---|---|---|
| GET | /health | Servis durumu: { success, status, scrape_running, timestamp } |
| GET | /api/news | Son 14 günün haberleri. category, limit. |
| GET | /api/news/status | Son haber turunun zamanı, durumu ve toplam haber sayısı. |
X-API-Key ile
| Yöntem | Yol | Dönen |
|---|---|---|
| GET | /api/data | Tüm güncel kayıtlar (döviz + akaryakıt). |
| GET | /api/currency | Yalnızca döviz ve altın. |
| GET | /api/fuel | Yalnızca akaryakıt. |
| GET | /api/meta | Mevcut şehirler, yakıt türleri, veri tipleri. |
| GET | /api/currency-history | Döviz zaman serisi — range. |
| GET | /api/fuel-history | Akaryakıt zaman serisi — range, city. |
| GET | /api/stats | Arşiv özeti: kayıt sayıları, kapsam, kaynak kırılımı. |
| GET | /api/activity | Günlük kayıt hareketi — days (7–400). |
| GET | /api/records | Sayfalanmış ham kayıtlar — type, site, q. |
/api/fuel ve /api/currency aynı filtreleri kabul eder; type değerini kendileri sabitler. /api/data ikisini birlikte döner.
Veri uçlarında filtreler
Geçerli olduğu yerler: /api/data, /api/currency, /api/fuel.
| Parametre | Varsayılan | Davranış |
|---|---|---|
| site | — | Kaynak, marka ya da ürün adı eşleşmesi. |
| city | — | İl. İstanbul hem Anadolu hem Avrupa kayıtlarını getirir. Büyük/küçük harf ve aksan farkı gözetilmez. |
| district | — | İlçe (ör. Payas). |
| fuel_type | — | benzin, motorin, motorin_eco, gazyagi, kalorifer_yakiti, fuel_oil, fuel_oil_high_sulfur. |
| type | — | currency ya da fuel. |
| latest | true | false → tüm kayıtlar (zaman serisi). history=true aynı işi görür. |
| limit | 1000 | 1–5000 arası kırpılır. |
| offset | 0 | Sayfalama için atlanacak satır. |
Zaman aralıkları
*-history uçlarında range: 3d, 1w, 1m (varsayılan), 1y. Tanınmayan değer 1m'e düşer.
Seride boş gün yoktur: her ürün için son bilinen değer ileri taşınır, böylece grafik çizgisi kopmaz. latest=true ise yalnızca son değer döner ve aynı ürünün eski satırları elenir.
Alanlar ne anlama geliyor
Döviz / altın kaydı
{
"success": true,
"count": 3,
"data": [
{
"type": "currency",
"name": "Dolar",
"price": 41.8271,
"currency": "TRY",
"scraped_at": "2026-10-22 14:00:11"
}
]
}
Akaryakıt kaydı
{
"type": "fuel",
"city": "Hatay",
"district": "Payas",
"fuel_type": "motorin",
"product_name": "Motorin",
"price": 54.31,
"currency": "TRY",
"unit": "litre",
"scraped_at": "2026-10-22 14:00:09"
}
Zaman serisi
{
"success": true,
"range": "1w",
"city": "Hatay",
"count": 7,
"series": [
{ "day": "2026-10-16", "benzin": 52.10, "motorin": 54.31 }
]
}
Fiyat uçları { success, count, data } ya da { success, range, count, series } sarmalayıcısını kullanır. Haber uçları düz dizi döner. Kaynağın kendi adresi ve markası yanıtlarda yer almaz; yalnızca ürün, yer ve fiyat bilgisi döner.
Yardımcı uçlar
| Uç | Dönen yapı |
|---|---|
| /api/meta | { success, cities[], fuel_types[], types[] } |
| /api/stats | scraped (toplam, aktif gün, ilk/son kayıt, tip ve kaynak kırılımı), news, storage, counters |
| /api/activity | { days, series[] } — her gün için { day, currency, fuel, total, sources, news } |
| /api/records | { total, limit, offset, rows[] } — limit en fazla 200 |
Anahtarsız, son 14 gün
/api/news kimlik doğrulaması istemez ve son 14 günün süzülmüş haberlerini döner. Her turda en fazla 30 haber seçilir; özet ve kategori Türkçe üretilir.
| Parametre | Varsayılan | Davranış |
|---|---|---|
| category | tümü | genel, ekonomi, akaryakıt, borsa, doviz, teknoloji, spor. |
| limit | 30 | En fazla 100. |
[
{
"title": "…",
"link": "https://…",
"source": "AA",
"category": "ekonomi",
"summary": "…",
"image": "https://…",
"pubDate": "2026-10-22T09:12:00.000Z"
}
]
category=genel "tümü" anlamına gelir. Görsel bulunamazsa image alanı yanıtta hiç yer almaz — alanı zorunlu saymayın.
Sınırlar ve hata kodları
- Dakikada 240 istek — istemci IP başına. Aşılırsa 429 ve Retry-After başlığı döner.
- limit üst sınırı — veri uçlarında 5000, kayıt sayfasında 200, haberde 100.
- Haber penceresi — 14 gün; daha eski haberler yayında tutulmaz.
- Yazma yok — tüm uçlar GET; veri değiştiren bir yol yoktur.
| Kod | Anlamı | Çözüm |
|---|---|---|
| 401 | Anahtar başlığı yok. | X-API-Key ekleyin. |
| 403 | Anahtar geçersiz, iptal edilmiş ya da süresi bitmiş. | Yeni anahtar isteyin. |
| 429 | Hız sınırı aşıldı. | Retry-After saniyesi kadar bekleyin. |
| 500 | Sunucu tarafı hata. | Yanıttaki error alanına bakın; tekrar deneyin. |
Hata yanıtları her zaman { success: false, error: "…" } biçimindedir.
Kopyala, çalıştır
# servis ayakta mı curl -s https://comboxdev.com/scraper/health # güncel dolar curl -s "https://comboxdev.com/scraper/api/currency?site=Dolar" \ -H "X-API-Key: sk_…" # Hatay'daki benzin ve motorin curl -s "https://comboxdev.com/scraper/api/fuel?city=Hatay" \ -H "X-API-Key: sk_…" # son 7 günün akaryakıt serisi (grafik) curl -s "https://comboxdev.com/scraper/api/fuel-history?range=1w&city=Hatay" \ -H "X-API-Key: sk_…" # doların tüm geçmişi curl -s "https://comboxdev.com/scraper/api/currency?site=Dolar&history=true&limit=500" \ -H "X-API-Key: sk_…" # son ekonomi haberleri (anahtarsız) curl -s "https://comboxdev.com/scraper/api/news?category=ekonomi&limit=10"
const res = await fetch(
'https://comboxdev.com/scraper/api/fuel?city=Hatay&fuel_type=benzin',
{ headers: { 'X-API-Key': process.env.SCRAPER_API_KEY } }
);
if (!res.ok) throw new Error(`scraper ${res.status}`);
const { data } = await res.json();
for (const row of data) {
console.log(row.district, row.price);
}
Fiyatlar sayı olarak (54.31), tarihler veritabanı biçiminde (YYYY-MM-DD HH:mm:ss, UTC) döner. Tarihleri ayrıştırırken saat dilimini kendiniz ekleyin.