Avito API Entegrasyonu: Kayıttan İlk İsteklere Kadar

Kerem Aydın·7 Temmuz 2026·⏱4 dk

Avito API ile çalışmak için geliştirici panelinde kayıt olmanız, bir uygulama oluşturmanız ve moderasyondan geçmeniz gerekir. Veri alma (okuma) işlevlerine erişim genellikle temel kayıttan sonra açıktır, ancak ilan yayınlama ve yönetim yöntemleri ortak veya doğrulanmış faaliyete sahip iş hesabı statüsü gerektirir. Yetkilendirme, access_token kullanılarak OAuth 2.0 protokolü üzerinden gerçekleştirilir.

Aşağıda bağlantı kurma, güvenliği yapılandırma ve entegrasyon için kod örneklerini içeren güncel talimatlar yer almaktadır.

Önemli: Avito erişim politikasını düzenli olarak günceller. Toplu veri kazıma (parsing) için genel ücretsiz bir API bulunmamaktadır. Çalışmalar resmi geliştirici platformu (developers.avito.ru) üzerinden yürütülür.

Gereksinimler ve Erişim Alma

Geliştirmeye başlamadan önce aktif bir Avito hesabınız olduğundan emin olun. Anahtarları alma süreci birkaç aşamadan oluşur:

  1. Geliştirici panelinde kayıt. Avito geliştirici portalına gidin ve ana hesabınızla giriş yapın.
  2. Uygulama oluşturma. "Uygulamalarım" bölümünde "Oluştur" düğmesine tıklayın. Aşağıdakileri belirtmeniz gerekecektir:
    • Proje adı.
    • Uygulama türü (web hizmeti, mobil uygulama veya sunucudan-sunucuya).
    • Redirect URI (kullanıcının yetkilendirmeden sonra yönlendirileceği adres).
  3. Kimlik bilgilerini alma. Oluşturduktan sonra Client ID ve Client Secret alacaksınız. Bu veriler üçüncü taraflara aktarılamaz veya istemci tarafında (frontend'de) açık şekilde saklanamaz.
  4. Tarife ve erişim haklarının seçimi.
    • Temel erişim: Kendi ilanlarınız hakkında veri okumanıza ve istatistik almanıza olanak tanır.
    • Genişletilmiş erişim (Ortak): Toplu ilan yükleme, otomatik öne çıkarma ve sohbetleri yönetmek için gereklidir. Ortak anketinin doldurulmasını ve işletme moderasyonundan geçilmesini gerektirir.

Client Secret öğesini tarayıcıdaki JavaScript kodunda veya mobil uygulamalarda kullanmayın. Bu senaryolar için PKCE (Proof Key for Code Exchange) veya bir sunucu katmanı kullanın.

OAuth 2.0 Yetkilendirme Mekanizması

Avito standart Authorization Code Grant akışını kullanır. Token alma süreci şu şekildedir:

Adım 1. Yetkilendirme bağlantısının oluşturulması

Kullanıcının uygulamanın verilerine erişmesine izin vermesi için bir bağlantıya tıklaması gerekir.

https://api.avito.ru/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=ads_user ads_read

Burada scope erişim haklarını belirler:

  • ads_user — ilan yönetimi.
  • ads_read — veri okuma.
  • messages_user — sohbetlerle çalışma.

Adım 2. Yetkilendirme kodunun alınması

Kullanıcı onayladıktan sonra Avito, onu code parametresiyle redirect_uri adresinize yönlendirecektir:

YOUR_REDIRECT_URI?code=AUTH_CODE

Adım 3. Kodun token ile değiştirilmesi

Geçici kodu access_token ve refresh_token ile değiştirmek için Avito sunucusuna bir POST isteği gönderin.

İstek örneği (cURL):

curl -X POST https://api.avito.ru/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "code=AUTH_CODE" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "redirect_uri=YOUR_REDIRECT_URI"

Sunucu yanıtı:

{
  "access_token": "eyJhbGciOi...",
  "token_type": "Bearer",
  "expires_in": 86400,
  "refresh_token": "def50200..."
}

access_token 24 saat geçerlidir. Mevcut token süresi dolduğunda kullanıcı müdahalesi olmadan yeni token almak için refresh_token kullanın.

API Kullanım Örnekleri

API yöntemlerine yapılan tüm istekler yetkilendirme başlığı içermelidir: Authorization: Bearer YOUR_ACCESS_TOKEN

Çoğu yöntem için temel URL: https://api.avito.ru/core/v1/

1. Kendi ilanlarınızın listesini alma

Bu yöntem, kullanıcının tüm aktif ve arşivlenmiş ilanları hakkında bilgi indirmesine olanak tanır.

İstek:

GET /accounts/{account_id}/items

Parametreler:

  • account_id — mağaza veya kişisel panel tanımlayıcısı.
  • limit — sayfa başına öğe sayısı (maks. 100).
  • page — sayfa numarası.

Yanıt örneği:

{
  "items": [
    {
      "id": 123456789,
      "title": "iPhone 13, 128 GB",
      "price": 45000,
      "status": "active",
      "category": "telefony",
      "address": {
        "city": "Moskova",
        "street": "Lenin Caddesi, 1"
      }
    }
  ],
  "total_items": 1,
  "page": 1,
  "pages_count": 1
}

2. Yeni ilan oluşturma

Yayınlama için genişletilmiş erişim gerekir. Veriler JSON formatında iletilir.

İstek:

POST /accounts/{account_id}/items
Content-Type: application/json

İstek gövdesi:

{
  "title": "Dağ bisikleti",
  "description": "Yeni bisiklet, 1 yıl garanti.",
  "category": "velosipedy",
  "price": 15000,
  "address": {
    "city": "Saint Petersburg",
    "street": "Nevski Prospekti, 10"
  },
  "images": ["https://example.com/img1.jpg"],
  "attributes": [
    {
      "key": "brand",
      "value": "Merida"
    }
  ]
}

Görseller önceden Avito sunucusuna yüklenmeli veya platformun desteklediği doğrudan bağlantılar aracılığıyla sunulmalıdır. İçerik moderasyon kurallarının ihlal edilmesi ilanın reddedilmesine yol açar.

3. Fiyat ve durum güncelleme

Stok ve fiyatların çevrimiçi mağazayla senkronize edilmesi için sıkça yapılan bir işlemdir.

İstek:

PATCH /accounts/{account_id}/items/{item_id}
Content-Type: application/json

İstek gövdesi:

{
  "price": 14000,
  "status": "active"
}

Entegrasyonda Sık Karşılaşılan Hatalar

Hata KoduNedenÇözüm
401 UnauthorizedGeçersiz veya süresi dolmuş tokenAuthorization başlığını kontrol edin. Token'ı refresh_token aracılığıyla yenileyin.
403 Forbiddenİşlem için yetki yokYetkilendirme sırasında scope içinde gerekli hakların (örneğin ads_user) istendiğinden emin olun.
429 Too Many Requestsİstek limiti aşıldıTekrarlanan istekler arasında üstel geri çekilme (exponential backoff) uygulayın.
400 Bad RequestParametrelerde hataJSON geçerliliğini, zorunlu alanların varlığını ve kategorilerin Avito sözlüğüne uygunluğunu kontrol edin.

SSS

Başkalarının ilanlarını kazımak (parse etmek) için Avito API kullanılabilir mi? Hayır. Resmi API yalnızca kendi hesabınızın veya (ortak programı kapsamında) yönettiğiniz hesapların verilerine erişim sağlar. Site izinsiz veri toplamak kullanıcı sözleşmesini ihlal eder.

İstek sayısı limitleri nelerdir? Limitler tarifeye ve yöntem türüne bağlıdır. Standart ortaklar için genellikle dakikada yaklaşık 100–300 istek limiti uygulanır. Kesin değerler, geliştirici panelindeki "Limitler" bölümünde belirtilmiştir.

Görsellerle nasıl çalışılır? Avito, görsellerin ayrı bir /images/upload uç noktası üzerinden yüklenmesini veya doğrudan içerik sunumunu destekleyen harici barındırma hizmetlerine bağlantı verilmesini gerektirir. Yüklemeden sonra, ilan oluştururken belirttiğiniz bir image_id alırsınız.

Token sürekli süresi doluyorsa ne yapılmalı? Backend'de token'ların otomatik yenilenmesini ayarlayın. refresh_token öğesini güvenli bir depolama alanında saklayın ve mevcut access_token süresi dolmadan önce yeni token çifti almak için kullanın.