İçeriğe geç
kosto kosto API v1
OpenAPI Panele dön

Kosto API · v1

Kosto API belgeleri:
alan adı otoritesi, kendi araçlarında.

Panelde gördüğün otorite puanını, referans veren alan adlarını, yan yana karşılaştırmayı ve spam denetimini HTTP ile sorgula. Her yanıt JSON'dur, alan adları snake_case yazılır ve her uç nokta aşağıda çalışan bir örnekle gelir.

Temel adres
Uç nokta
7
Dakikalık sınır
120
Biçim
JSON
Kimlik
API anahtarı

Otorite puanı

0–100 arası puan, sıralamalar ve puanı oluşturan bileşenler. Tek alan adı ya da on tanesi yan yana.

Referanslar

Bir alana link veren alan adları, puana göre sıralı; en düşük puanı sen belirlersin.

Spam denetimi

Bahis, yetişkin, ilaç, replika gibi kötüye kullanım izleri için risk puanı ve gerekçeler.

  • Tüm uç noktalar /api/v1 altındadır. Sürüm adresin parçasıdır.
  • İstekler ve yanıtlar UTF-8 JSON'dur. Tarihler ISO 8601 (UTC) yazılır.
  • Makine tarafından okunabilir tanım: OpenAPI 3.1 belgesini indir.

Başlarken

Hızlı başlangıç

Anahtar almaktan ilk yanıta üç adım.

  1. 1

    Anahtar alın

    Aşağıdan bir anahtar oluştur. Anahtar yalnızca oluşturulduğu anda görünür; kopyalayıp güvenli bir yere kaydet.

  2. 2

    İlk isteği gönder

    Anahtarı Authorization başlığında yollayın. Sağdaki örnek seçtiğin dilde hazır; YOUR_API_KEY yerine kendi anahtarını yaz.

  3. 3

    Yanıtı okuyun

    authority_score alanı 0–100 arası puandır. found false ise alan adı link endeksinde yoktur; bu bir hata değildir, 200 döner. score_source puanın türünü söyler: data veriye dayalı, standard ve calibrated yaklaşık puandır.

Her uç noktanın altındaki Dene panelinden isteği doğrudan tarayıcıdan gönderebilirsin. Anahtarı yalnızca bu sekmenin belleği tutar, hiçbir yere kaydedilmez ve istek sen düğmeye basmadan gitmez.

Başlarken

Kimlik doğrulama

/api/v1/openapi.json dışındaki her uç nokta bir API anahtarı ister. Anahtar op_ ile başlar ve toplam 35 karakterdir. Aşağıdaki iki başlıktan birini kullan; ikisi de aynı işi görür.

HTTP başlığıBiçim
AuthorizationBearer op_… (Bearer büyük/küçük harf fark etmez)
X-API-Keyop_…

Anahtarı korumak

  • Sunucu anahtarın kendisini değil SHA-256 özetini saklar. Kaybedersen yeni anahtar üretin; eskisini iptal et.
  • Anahtarı ortam değişkeninde ya da gizli anahtar kasanda tut. Kaynak koduna, herkese açık depolara ve tarayıcıda çalışan koda koymayın.
  • İptal edilen anahtar 403 key_revoked alır. Anahtar yok ya da biçimi yanlışsa 401 döner.
  • CORS başlığı gönderilmez; başka bir sitenin tarayıcı kodu bu API'yi okuyamaz (cross_site_forbidden). Betikler, komut satırı ve sunucu tarafı kod sorunsuz çalışır.
  • Hesap modunda anahtar bir hesaba aittir ve o hesabın planına göre sayılır; hesabı askıdaki ya da hiçbir hesaba bağlı olmayan anahtar 403 alır.

Başlarken

Hız sınırları ve kotalar

İki ayrı sınır vardır: dakikalık hız sınırı bütün anahtarlar için aynıdır; aylık ve günlük kotalar planına bağlıdır.

Hız sınırı: dakikada 120 istek

Her anahtar 60 saniyelik sabit bir pencerede 120 istek yapabilir. Pencere anahtarın ilk isteğiyle açılır, 60 saniye sonra kapanır ve sayaç sıfırlanır. Geçerli anahtar göndermeyen istekler istemci adresi başına ortak bir pencerede sayılır. Reddedilen (401, 400 gibi) istekler de pencereye yazılır. Her /api/v1 yanıtında şu başlıklar bulunur:

HTTP başlığıAnlamı
X-RateLimit-LimitPencere başına izin verilen istek sayısı (120).
X-RateLimit-RemainingGeçerli pencerede kalan istek sayısı.
X-RateLimit-ResetPencerenin kapanacağı an, Unix saniyesi.
Retry-After429 ve 503 yanıtlarında beklenecek saniye.

Sınır aşılınca 429 rate_limited döner. Retry-After başlığındaki süre kadar bekleyip yeniden dene; beklemeden tekrar denemek pencereyi daha da doldurur.

Plan kotaları

Hesap modunda her çağrı API isteği sayacından bir düşer. Toplu sorgu satır sayısı kadar toplu sorgu satırı, spam denetimi ise bir spam denetimi hakkı harcar. Başarısız bir çağrı harcadığı hakkı geri verir. Aynı alan adının aynı günkü spam denetimi tekrar sayılmaz (fresh=1 hariç).

PlanAPI anahtarıAPI isteği / ayToplu satır / günSpam denetimi / gün

Günlük kotalar ve aylık kotalar Türkiye saatiyle (UTC+3) gece yarısı ve ay başında yenilenir. Kota dolunca 429 quota_exceeded döner; mesaj hangi sayacın dolduğunu, kullanımını ve planını söyler. Fiyatlar için plan sayfasına bak.

Başlarken

Hata kodları

Hatalar HTTP durum koduyla ve hep aynı gövdeyle gelir. code sabittir; programın ona göre dallanmalıdır. message insanlar için yazılmış bir açıklamadır ve değişebilir; varsayılan olarak İngilizcedir, Accept-Language ya da X-Kosto-Lang başlığıyla başka bir dil seçilir.

DurumKodNe zaman
  • 5xx ve 429 yanıtlarında Retry-After başlığı varsa o süre kadar bekle; 4xx yanıtlarını aynı istekle yinelemeyin, isteği düzeltin.
  • 405 yanıtında Allow başlığı uç noktanın desteklediği yöntemi söyler. HEAD, GET gibi işlenir.
  • Link endeksi yüklenirken referans sorguları 503 graph_unavailable verebilir; Retry-After: 15 sonrası yeniden dene.

Başlarken

Sayfalama ve toplu istek

API imleç (cursor) ya da sayfa numarası kullanmaz. Liste dönen uç noktalar tek yanıt verir ve boyutu parametrelerle sınırlanır.

Uç noktaKural
GET /backlinkslimit en çok 1000 (varsayılan 100). Sunucu önce puana göre en iyi referansları seçer; min_score filtresi, link sırası en iyi 1000 referans içinde uygulanır. Bu yüzden filtreyle returned, limit'ten küçük çıkabilir. total filtreden bağımsız toplam referans sayısıdır.
GET /compare2 ile 10 arası alan adı. Aynı siteye giden yazımlar tek satıra iner; indirgendikten sonra en az iki farklı site kalmalıdır.
POST /bulkTek istekte en çok 1000 alan adı, gövde en çok 1 MB. Aşarsan too_many_domains (400) ya da payload_too_large (413) alırsın. Boş satırlar atlanır, aynı site tek satıra iner, geçersiz girdiler valid: false olarak yerinde kalır; sıra ilk görülme sırasıdır.

Büyük listeleri bölmek

1000'den fazla alan adın varsa listeyi 1000'erlik parçalara bölüp ardışık gönder. Her parça bir istektir ve dakikalık sınıra sayılır; hesap modunda ayrıca satır sayısı kadar toplu sorgu kotası harcar.

Diğer

Sürümleme ve değişiklik günlüğü

Sürüm adresin içindedir: /api/v1. OpenAPI belgesinin info.version alanı bu sürümün belge sürümünü verir.

  • Yeni uç noktalar ve yanıtlara yeni alanlar sürümü değiştirmeden eklenebilir. İstemcinin bilmediği alanları yok saymasını bekleriz.
  • Var olan bir alanın türünü ya da anlamını değiştirmek, alan silmek gibi uyumsuz değişiklikler yeni bir sürümle (/api/v2) gelir.
  • message metinleri değişebilir. code değerlerine ve HTTP durum kodlarına bak.
  1. 1.0.0Güncel sürüm

    İlk sürüm. Yedi uç nokta: domain, backlinks, compare, bulk, spam, usage ve openapi.json.

    • Anahtar doğrulama: Authorization: Bearer ya da X-API-Key.
    • Dakikada 120 istek hız sınırı ve X-RateLimit-* başlıkları.
    • Hata biçimi { "error": { "code", "message" } }.

Diğer

Sık sorulan sorular

Alan adı bulunamadı, bu bir hata mı?

Hayır. Link endeksinde olmayan alan adı için 200 ve found: false döner. Bu durumda subdomains ve referring_domains null olur. Geçersiz bir girdi (alan adı olmayan metin) ise 400 invalid_domain verir.

URL gönderebilir miyim?

Evet. domain parametresi alan adı ya da URL kabul eder. https://www.ornek.com/sayfa yanıtta ornek.com olur. Aynı şey bulk ve compare için de geçerlidir.

Referans sayısı neden bazen null?

referring_domains, alan adı link grafiğinde yoksa ya da grafik o anda yanıt veremiyorsa null olur. backlinks grafik hazır değilken 503 graph_unavailable döner.

Puan yaklaşık mı, veriye dayalı mı?

score_source alanına bak. data ise puan ölçülmüş link ve trafik verisinden hesaplanmıştır; panelde veriye dayalı rozetiyle ve dolu bir noktayla gösterilir. standard ve calibrated yaklaşık puandır; panelde yaklaşık rozeti ve içi boş bir nokta alır. score_low ve score_high geldiğinde puanın beklenen aralığını verir; panel bu aralığı kadranda bir yay olarak çizer. İkisi de null ise aralık bildirilmiyordur, sıfır genişlikte bir aralık anlamına gelmez.

Paneldeki referans sayısı API'dekinden neden farklı olabilir?

referring_domains her zaman link endeksinde sayılan referans alan adlarıdır; backlinks ucu bu alan adlarını adıyla listeler. Panel başlıkta tek bir sayı gösterir: alan adı için arama verisi açıldıysa o sayıyı, açılmadıysa link endeksi sayısını. Arama verisi başlıkta olduğunda link endeksi sayısı kartın altındaki ayrıntıda, “adıyla listeleyebildiğimiz” sayı olarak durur. İki sayı farklı yöntemle ölçülür; biri diğerini yanlışlamaz.

Spam denetimi neden bu kadar yavaş olabiliyor?

İlk sorguda alan adının arşiv, tarama ve canlı sayfa verisi okunur; 25 saniyeye kadar sürebilir. Sonuç 24 saat önbellekte tutulur (cached: true). İstemci zaman aşımını en az 30 saniyeye ayarlayın. fresh=1 önbelleği atlar ve yeniden tarar.

Tarayıcıdan, kendi sitemden çağırabilir miyim?

Hayır. API CORS başlığı göndermez ve başka siteden gelen tarayıcı isteklerini reddeder. Anahtarını tarayıcıdaki koda koymak zaten güvenli olmaz; çağrıyı kendi sunucundan yap. Bu sayfadaki Dene paneli aynı adresten çalıştığı için istisnadır.

Anahtarımı kaybettim.

Anahtar kurtarılamaz; yalnızca özeti saklanır. Yeni bir anahtar oluştur, betiğini güncelle ve eskisini iptal et.

Sınırımı nasıl görürüm?

GET /api/v1/usage anahtarının toplam istek sayısını ve geçerli dakikalık pencerenin durumunu verir. Hesap modunda başarılı yanıtlarda X-Quota-* başlıkları son sayılan kotanın kalan hakkını gösterir; ayrıntı hesap sayfanızdadır.

Zaman damgaları hangi saat diliminde?

Yanıtlardaki tarih alanları UTC'dir (2026-11-10T09:40:36.000Z gibi). Günlük ve aylık kotalar Türkiye saatine (UTC+3) göre yenilenir.