eBay API'leri Nasıl Kullanılır?

Ashley Innocent

Ashley Innocent

24 March 2026

eBay API'leri Nasıl Kullanılır?

Kurumsal Apidog

Şirket İçi Dağıtım

SSO & RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfet

ÖZET

eBay API'leri, dünyanın en büyük pazar yerinde envanteri, ilanları, siparişleri ve ödemeleri yönetmenizi sağlar. OAuth 2.0 ile kimlik doğrulaması yapar, `api.ebay.com/sell` uç noktalarını çağırır ve hız sınırlarını dikkatli bir şekilde yönetirsiniz. Test etmek için Apidog'u kullanarak ilan yüklerini doğrulayabilir, sipariş işlemeyi test edebilir ve entegrasyonunuzun API limitlerini sorunsuz bir şekilde ele aldığından emin olabilirsiniz.

Giriş

eBay, alıcıları ve satıcıları küresel olarak birbirine bağlar. API, satıcıların envanter yönetimini otomatikleştirmesine, toplu ilan oluşturmasına, siparişleri işlemesine, gönderimi yönetmesine ve iadeleri ele almasına olanak tanır. İster küçük bir satıcı ister bir kuruluş olun, API ölçeklenebilir.

Ana API alanları:

💡
eBay entegrasyonları geliştiriyorsanız, Apidog ilan oluşturmayı test etmenize, sipariş yanıtlarını doğrulamanıza ve entegrasyonunuzun hız limitlerini ve hataları doğru bir şekilde ele aldığından emin olmanıza yardımcı olur.
button

eBay API'lerini Apidog ile test edin - ücretsiz

Bu rehberin sonunda şunları yapabileceksiniz:

OAuth 2.0 ile Kimlik Doğrulama

eBay, API kimlik doğrulaması için OAuth 2.0 kullanır. eBay Geliştiriciler Programı'nda bir uygulama oluşturmanız gerekecektir.

Uygulama oluşturun

  1. developers.ebay.com adresine gidin
  2. Bir geliştirici hesabı için kaydolun
  3. Geliştirici Konsolu'nda bir uygulama oluşturun
  4. Uygulama Kimliğinizi (istemci kimliği) ve Sertifika Kimliğinizi (istemci gizli anahtarı) alın

OAuth akışı

Adım 1: Kullanıcı yetkilendirmesi

https://auth.ebay.com/oauth2/authorize?
  client_id=YOUR_APP_ID&
  response_type=code&
  redirect_uri=YOUR_SIGNIN_REDIRECT_URI&
  scope=https://api.ebay.com/oauth/api_scope/sell.inventory

Adım 2: Yetkilendirme kodu alın

Kullanıcı yetkilendirir, yönlendirme URI'nizde bir kod alırsınız.

Adım 3: Belirteçler için takas edin

const response = await fetch('https://api.ebay.com/identity/v1/oauth2/token', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization': 'Basic ' + Buffer.from(APP_ID + ':' + CERT_ID).toString('base64')
  },
  body: new URLSearchParams({
    grant_type: 'authorization_code',
    code: AUTHORIZATION_CODE,
    redirect_uri: 'YOUR_SIGNIN_REDIRECT_URI'
  })
})

const { access_token, refresh_token, expires_in } = await response.json()

Gerekli kapsamlar

Envanter yönetimi

Envanter, sattığınız ürünleri temsil eder.

Envanter konumu oluşturun

curl -X POST "https://api.ebay.com/sell/inventory/v1/location_inventory_location" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "locationId": "WAREHOUSE_1",
    "name": "Main Warehouse",
    "address": {
      "addressLine1": "123 Main St",
      "city": "San Jose",
      "stateOrProvince": "CA",
      "postalCode": "95101",
      "countryCode": "US"
    }
  }'

Bir envanter öğesi oluşturun

curl -X POST "https://api.ebay.com/sell/inventory/v1/inventory_item" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "product": {
      "title": "Vintage Leather Messenger Bag",
      "description": "Genuine leather messenger bag, perfect for work or school.",
      "aspects": {
        "Brand": ["Vintage"],
        "Material": ["Leather"],
        "Color": ["Brown"]
      },
      "imageUrls": [
        "https://example.com/images/bag1.jpg",
        "https://example.com/images/bag2.jpg"
      ]
    },
    "condition": "USED_GOOD",
    "conditionNotes": "Minor wear on corners",
    "availability": {
      "shipToLocationAvailability": {
        "quantity": 25
      }
    }
  }'

Envanteri güncelleyin

curl -X PUT "https://api.ebay.com/sell/inventory/v1/inventory_item/SKU123" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "availability": {
      "shipToLocationAvailability": {
        "quantity": 30
      }
    }
  }'

Envanter öğesini alın

curl -X GET "https://api.ebay.com/sell/inventory/v1/inventory_item/SKU123" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Öğeleri listeleme

Bir teklif oluşturun

curl -X POST "https://api.ebay.com/sell/inventory/v1/offer" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": "SKU123",
    "marketplaceId": "EBAY_US",
    "format": "FIXED_PRICE",
    "product": {
      "title": "Vintage Leather Messenger Bag"
    },
    "pricingSummary": {
      "price": {
        "currency": "USD",
        "value": "89.99"
      }
    },
    "listing": {
      "listingDuration": "GTC",
      "listingType": "CLASSIC"
    },
    " fulfillment": {
      "shippingProfileId": "SHIPPING_PROFILE_ID",
      " fulfillmentPolicyId": "FULFILLMENT_POLICY_ID",
      "paymentPolicyId": "PAYMENT_POLICY_ID"
    }
  }'

Anahtar alanlar:

Teklifi yayınlayın

curl -X POST "https://api.ebay.com/sell/inventory/v1/offer/OFFER_ID/publish" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Bir ilanı geri çekin

curl -X POST "https://api.ebay.com/sell/inventory/v1/offer/OFFER_ID/withdraw" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Sipariş yönetimi

Siparişleri alın

curl -X GET "https://api.ebay.com/sell/fulfillment/v1/order?orderIds=ORDER_ID_1,ORDER_ID_2" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Tarihe göre filtrele:

curl -X GET "https://api.ebay.com/sell/fulfillment/v1/order?filter=creation_date_range:from:2026-01-01T00:00:00Z,to:2026-03-24T00:00:00Z" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Sipariş detaylarını alın

curl -X GET "https://api.ebay.com/sell/fulfillment/v1/order/ORDER_ID" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Sipariş yanıtı:

{
  "orderId": "12-34567-89012",
  "orderPaymentStatus": "PAID",
  "pricingSummary": {
    "total": {
      "currency": "USD",
      "value": "94.99"
    }
  },
  "fulfillmentStartInstructions": [
    {
      "shippingStep": {
        "shipTo": {
          "fullName": "John Doe",
          "contactAddress": {
            "addressLine1": "123 Main St",
            "city": "Anytown",
            "stateOrProvince": "CA",
            "postalCode": "12345",
            "countryCode": "US"
          }
        }
      }
    }
  ],
  "lineItems": [
    {
      "lineItemId": "LINE_ITEM_ID",
      "sku": "SKU123",
      "quantity": 1,
      "title": "Vintage Leather Messenger Bag",
      "lineItemCost": {
        "currency": "USD",
        "value": "89.99"
      }
    }
  ]
}

Gönderim ve gerçekleştirme

Gönderim etiketi oluşturun

curl -X POST "https://api.ebay.com/sell/fulfillment/v1/order/ORDER_ID/shipping_fulfillment" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "lineItems": [
      {
        "lineItemId": "LINE_ITEM_ID",
        "quantity": 1
      }
    ],
    "shippingStep": {
      "shipFrom": {
        "fullName": "Your Name",
        "companyName": "Your Company",
        "contactAddress": {
          "addressLine1": "456 Warehouse Rd",
          "city": "San Jose",
          "stateOrProvince": "CA",
          "postalCode": "95101",
          "countryCode": "US"
        }
      }
    },
    "shippingCarrierCode": "USPS",
    "shippingMethodCode": "PRIORITY_MAIL",
    "trackingNumber": "9400111899223056789012"
  }'

Taşıyıcılar:

İade yönetimi

İade detaylarını alın

curl -X GET "https://api.ebay.com/sell/fulfillment/v1/return/RETURN_ID" \
  -H "Authorization: Bearer ACCESS_TOKEN"

Bir iadeyi işleyin

curl -X POST "https://api.ebay.com/sell/fulfillment/v1/return/RETURN_ID/decide" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "decision": "ACCEPT",
    "shipment": {
      "carrierId": "CARRIER_ID",
      "trackingNumber": "TRACKING_NUMBER"
    }
  }'

Hız limitleri ve ele alma

eBay, kötüye kullanımı önlemek için API çağrılarını sınırlar. Başlıkları kontrol edin:

async function makeEbayRequest(url, options, retries = 3) {
  for (let i = 0; i < retries; i++) {
    const response = await fetch(url, options)
    
    const remaining = response.headers.get('X-RateLimit-Remaining')
    if (remaining && parseInt(remaining) < 10) {
      console.warn('Rate limit low:', remaining)
    }
    
    if (response.status === 429) {
      const resetTime = response.headers.get('X-RateLimit-Reset')
      const waitTime = (parseInt(resetTime) - Date.now() / 1000) * 1000
      await sleep(waitTime)
      continue
    }
    
    return response
  }
  throw new Error('Rate limited')
}

Apidog ile Test Etme

eBay API'leri üretim açısından kritik öneme sahiptir. Canlı değişiklikler yapmadan önce iyice test edin.

1. Ortam kurulumu

EBAY_APP_ID: your_app_id
EBAY_CERT_ID: your_cert_id
EBAY_ACCESS_TOKEN: stored_token
EBAY_REFRESH_TOKEN: stored_refresh
EBAY_MARKETPLACE_ID: EBAY_US
BASE_URL: https://api.ebay.com

2. İlan yüklerini doğrulayın

pm.test('Listing has required fields', () => {
  const requestBody = JSON.parse(pm.request.body.raw)
  pm.expect(requestBody).to.have.property('sku')
  pm.expect(requestBody).to.have.property('marketplaceId')
  pm.expect(requestBody.pricingSummary).to.have.property('price')
})

pm.test('Price is valid', () => {
  const requestBody = JSON.parse(pm.request.body.raw)
  const price = parseFloat(requestBody.pricingSummary.price.value)
  pm.expect(price).to.be.above(0)
})

3. Sipariş işlemeyi test edin

pm.test('Order response is valid', () => {
  const response = pm.response.json()
  pm.expect(response).to.have.property('orderId')
  pm.expect(response.orderPaymentStatus).to.eql('PAID')
  pm.expect(response.lineItems).to.be.an('array')
})

eBay API'lerini Apidog ile test edin - ücretsiz

Yaygın hatalar ve düzeltmeler

401 Yetkisiz

Neden: Belirteç süresi doldu veya geçersiz.

Düzeltme: Yeni bir erişim belirteci almak için yenileme belirtecini kullanın:

const response = await fetch('https://api.ebay.com/identity/v1/oauth2/token', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization': 'Basic ' + Buffer.from(APP_ID + ':' + CERT_ID).toString('base64')
  },
  body: new URLSearchParams({
    grant_type: 'refresh_token',
    refresh_token: storedRefreshToken
  })
})

10002: API hatası - Geçersiz erişim belirteci

Neden: Erişim belirtecinin süresi doldu.

Düzeltme: Belirteci hemen yenileyin.

21916684: Öğe mevcut değil

Neden: Oluşturulmamış bir SKU'yu güncellemeye çalışılıyor.

Düzeltme: Önce envanter öğesini oluşturun, ardından teklifi oluşturun.

10003: Geçersiz SKU

Neden: SKU formatı geçersiz.

Düzeltme: SKU'lar envanterinizde benzersiz olmalı ve yalnızca alfanümerik karakterler, kısa çizgiler ve alt çizgiler içerebilir.

Hız limiti (429)

Neden: Çok fazla istek.

Düzeltme: Geri çekilme (backoff) uygulayın. eBay limitleri API'ye ve uç noktaya göre değişir.

Alternatifler ve Karşılaştırmalar

Özellik eBay Amazon SP-API Etsy
Envanter API'si Sınırlı
İlan API'si
Sipariş API'si
Gerçekleştirme API'si Sınırlı
Ücretsiz katman Geliştirici programı Sınırlı Sınırlı
API karmaşıklığı Orta Yüksek Düşük

eBay'in API'si Amazon'unkinden daha erişilebilir ancak daha az özellik sunar. Etsy en basitidir ancak büyük satıcılar için sınırlıdır.

Gerçek dünya kullanım senaryoları

Çok kanallı satış. Bir satıcı eBay'de, Amazon'da ve kendi sitesinde listeler. Envanter platformlar arasında senkronize edilir. Bir kanalda satıldığında, miktar her yerde azalır.

Otomatik yeniden fiyatlandırma. Bir satıcı rakipleri izler ve API aracılığıyla fiyatları ayarlar. Bir rakip fiyatları düşürdüğünde, satıcının fiyatları rekabetçi kalmak için otomatik olarak ayarlanır.

Toplu liste oluşturma. 10.000 ürünü olan bir satıcı toplu ilanlar oluşturur. API, CSV yüklemelerini kabul ederek binlerce ilanı otomatik olarak oluşturur.

Sonuç

İşte öğrendikleriniz:

Sonraki adımlarınız:

  1. eBay Geliştiriciler Programı'na başvurun
  2. Bir uygulama oluşturun ve kimlik bilgilerini alın
  3. OAuth akışını uygulayın
  4. İlk envanter öğenizi oluşturun
  5. Bir test ilanı yayınlayın

eBay API'lerini Apidog ile test edin - ücretsiz

button

Sıkça Sorulan Sorular

API'leri kullanmak için işletme hesabına ihtiyacım var mı?Evet. eBay API'leri doğrulanmış satıcılar içindir. Bir satıcı hesabı için kaydolun ve doğrulamayı tamamlayın.

Envanter ve teklifler arasındaki fark nedir?Envanter ürün bilgilerini (başlık, açıklama, resimler) saklar. Teklifler, envanteri fiyatlandırma ve gerçekleştirme bilgileriyle bir pazar yerine bağlar. Birden fazla teklif aynı envanteri referans alabilir.

İlanlar ne kadar süre aktif kalır?`GTC` (iptal edilene kadar geçerli) ilanlar, siz onları geri çekene veya ürünün stoğu bitene kadar aktif kalır.

API aracılığıyla uluslararası satış yapabilir miyim?Evet. `marketplaceId` değerini farklı değerlere (EBAY_US, EBAY_UK, EBAY_DE, vb.) ayarlayın. Her pazar yerinin gereksinimlerine uymanız gerekecektir.

API hız limiti nedir?Limitler uç noktaya ve hesap seviyenize göre değişir. Mevcut limitleriniz için yanıt başlıklarını kontrol edin.

Gönderim etiketlerini nasıl alabilirim?eBay, Gerçekleştirme API'si aracılığıyla indirimli gönderim etiketleri sağlar. Siz gönderimi oluşturursunuz ve eBay bir etiket oluşturur.

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin