CSV İçe/Dışa Aktarma Plus

İlanlarınızı ve koleksiyonlarınızı CSV olarak dışa aktarın; fiyat güncellemelerini ve koleksiyon kayıtlarını toplu şekilde içe aktarın.

Plus Paketi Gerektirir

Bu sayfadaki endpoint'ler yalnızca Plus (ve üstü: Kurumsal) paketinde çalışır. Diğer paketlerle istek yapıldığında 403 PLAN_UPGRADE_REQUIRED hatası döner. Tüm istekler Authorization: Bearer YOUR_API_KEY başlığı ile gönderilir ve işlemler API anahtarının sahibi olan kullanıcı hesabı üzerinde yapılır.

Günlük limit: Kullanıcı başına günde 10 CSV işlemi (içe + dışa aktarım birlikte sayılır). Limit dolduğunda 429 PLUS_CSV_ERROR döner. Bir içe aktarımda en fazla 5.000 satır işlenir, dosya boyutu en fazla 5 MB olabilir.

GET /api/v1/plus/csv/usage

Bugünkü kullanımı ve son 20 CSV işini döner.

Örnek Yanıt

{
  "success": true,
  "data": {
    "used_today": 3,
    "daily_limit": 10,
    "recent_jobs": [
      {
        "id": 77,
        "direction": "export",
        "resource": "listings",
        "status": "completed",
        "total_rows": 128,
        "success_rows": 128,
        "error_rows": 0,
        "created_at": "2026-07-27T11:20:04+03:00"
      }
    ]
  }
}

Dışa Aktarma

POST /api/v1/plus/csv/export/listings

Tüm ilanlarınızı CSV'ye aktarır ve indirme bağlantısı döner.

POST /api/v1/plus/csv/export/collections/{id}

Belirtilen koleksiyonun kayıtlarını CSV'ye aktarır.

Örnek İstek

curl -X POST "https://kartfiyat.com/api/v1/plus/csv/export/listings" \
  -H "Authorization: Bearer YOUR_API_KEY"

Örnek Yanıt

{
  "success": true,
  "message": "Dışa aktarım hazır.",
  "data": {
    "job_id": 77,
    "rows": 128,
    "download_url": "https://kartfiyat.com/api/v1/plus/csv/download/77"
  }
}
GET /api/v1/plus/csv/download/{job}

Dışa aktarım dosyasını text/csv olarak indirir. İndirme isteği de Authorization başlığı ile yapılmalıdır ve yalnızca kendi işlerinize erişebilirsiniz.

Dışa Aktarım Sütunları

# İlanlar
id,item_id,item_name,price,status,is_highlighted,created_at

# Koleksiyon
id,item_id,item_name,group_label,quantity,purchase_price,sale_price,purchase_date,card_uniq_id,note

İçe Aktarma

İçe aktarım istekleri multipart/form-data ile file alanında CSV dosyası bekler. İlk satır başlık satırı olmalıdır. Satırlar tek tek doğrulanır; hatalı satırlar atlanır ve yanıtta errors listesinde (en fazla 100 kayıt) raporlanır.

POST /api/v1/plus/csv/import/listings

Kendi ilanlarınızın fiyatlarını toplu günceller. Beklenen sütunlar: id, price. Size ait olmayan veya bulunmayan id'ler reddedilir.

# ornek-ilan-fiyat.csv
id,price
5044,11900
5045,7250.50

Örnek İstek

curl -X POST "https://kartfiyat.com/api/v1/plus/csv/import/listings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]"
POST /api/v1/plus/csv/import/collections/{id}

Koleksiyona toplu kayıt ekler. Zorunlu sütun: item_id. Opsiyonel: quantity, purchase_price, sale_price, purchase_date, card_uniq_id, note. Her satır yeni kayıt olarak eklenir (mevcut kayıtları güncellemez).

# ornek-koleksiyon.csv
item_id,quantity,purchase_price,purchase_date,note
12345,2,8500,2026-05-14,Kutuda saklanıyor
12346,1,1250,2026-06-02,

Örnek Yanıt

{
  "success": false,
  "message": "İçe aktarım kısmen/tamamen başarısız (detaylar errors alanında).",
  "data": {
    "job_id": 78,
    "total_rows": 3,
    "success_rows": 2,
    "error_rows": 1,
    "errors": [
      "Satır 3: geçerli item_id zorunludur (sistemde bulunmuyor)."
    ]
  }
}

Tüm satırlar başarılıysa success alanı true, mesaj "İçe aktarım tamamlandı." olur ve errors alanı null döner.

Hatalar

Durum Hata Kodu Sebep
429 PLUS_CSV_ERROR Günlük 10 işlem limiti doldu
422 PLUS_CSV_ERROR Koleksiyon bulunamadı / boş ya da okunamayan CSV
422 VALIDATION_ERROR file alanı eksik, CSV değil veya 5 MB'tan büyük